summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'stable'Shawn O. Pearce2011-01-101-1/+1
|\ | | | | | | | | * stable: Bump repo version to 1,10
| * Bump repo version to 1,10v1.7.3Shawn O. Pearce2011-01-101-1/+1
| | | | | | | | Change-Id: Ifdc041e7152af31de413b9269f20000acd945b3b
* | Merge branch 'maint'Shawn O. Pearce2011-01-090-0/+0
|\| | | | | | | | | | | | | | | | | | | | | | | * maint: help: Don't show empty Summary or Description sections sync: Run `git gc --auto` after fetch Add "repo branch" as an alias for "repo branches" upload: Catch and cleanly report connectivity errors forall: Silently skip missing projects Fix to display the usage message of the command download when the user don't provide any arguments to 'repo download'. Use os.environ.copy() instead of dict() Make path references OS independent
| * help: Don't show empty Summary or Description sectionsShawn O. Pearce2011-01-091-0/+2
| | | | | | | | | | Signed-off-by: Shawn O. Pearce <sop@google.com> (cherry picked from commit 60e679209a5495393ef584efaaad287fc8b77c51)
| * sync: Run `git gc --auto` after fetchShawn O. Pearce2011-01-092-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Users may wind up with a lot of loose object content in projects they don't frequently make changes in, but that are modified by others. Since we bypass many git code paths that would have otherwise called out to `git gc --auto`, its possible for these projects to have their loose object database grow out of control. To help prevent that, we now invoke it ourselves during the network half of sync. Signed-off-by: Shawn O. Pearce <sop@google.com> (cherry picked from commit 1875ddd47c0bf38e5cc52e1e5875caabce2d8742)
| * Add "repo branch" as an alias for "repo branches"Mike Lockwood2011-01-091-0/+2
| | | | | | | | | | | | | | For those of us that are used to typing "git branch". Signed-off-by: Mike Lockwood <lockwood@android.com> (cherry picked from commit 33f0e786bb35ea11da1e3d1746c431da5f1d93eb)
| * upload: Catch and cleanly report connectivity errorsShawn O. Pearce2011-01-092-6/+14
| | | | | | | | | | | | | | | | | | | | | | Instead of giving a Python backtrace when there is a connectivity problem during repo upload, report that we cannot access the host, and why, with a halfway decent error message. Bug: REPO-45 Change-Id: I9a45b387e86e48073a2d99bd6d594c1a7d6d99d4 Signed-off-by: Shawn O. Pearce <sop@google.com> (cherry picked from commit d2dfac81ad6a060179b4b2289060af2dc7a5cdfd)
| * forall: Silently skip missing projectsShawn O. Pearce2011-01-091-0/+6
| | | | | | | | | | | | | | | | | | | | If a project is missing locally, it might be OK to skip over it and continue running the same command in other projects. Bug: REPO-43 Change-Id: I64f97eb315f379ab2c51fc53d24ed340b3d09250 Signed-off-by: Shawn O. Pearce <sop@google.com> (cherry picked from commit d4cd69bdef28c5a9287c85c48a18ce621eba689d)
| * Fix to display the usage message of the command download when the userThiago Farina2011-01-091-0/+3
| | | | | | | | | | | | | | don't provide any arguments to 'repo download'. Signed-off-by: Thiago Farina <thiago.farina@gmail.com> (cherry picked from commit 840ed0fab7cb4c2ab296c7d7d45f13e2523bae1c)
| * Use os.environ.copy() instead of dict()Shawn O. Pearce2011-01-091-1/+1
| | | | | | | | | | Signed-off-by: Shawn O. Pearce <sop@google.com> (cherry picked from commit 3218c13205694434edb2375ab8a8515554eed366)
| * Make path references OS independentAnthony Newnam2011-01-094-6/+12
| | | | | | | | | | | | | | | | | | Change-Id: I5573995adfd52fd54bddc62d1d1ea78fb1328130 (cherry picked from commit b0f9a02394779c1c9422a9649412c9ac5fb0f12f) Conflicts: command.py
* | Merge branch 'stable'Shawn O. Pearce2011-01-094-14/+18
|\| | | | | | | | | | | * stable: Encode the environment variables passed to git Exit with statuscode 0 for repo help init
| * Encode the environment variables passed to gitShawn O. Pearce2011-01-094-14/+17
| | | | | | | | | | | | | | | | Windows allows the environment to have unicode values. This will cause Python to fail to execute the command. Change-Id: I37d922c3d7ced0d5b4883f0220346ac42defc5e9 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * Exit with statuscode 0 for repo help initTrond Norbye2011-01-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | The complete help text is printed, so the program executed successfully. Some tools (like OpenGrok) detects the availibility of a program by running it with a known set of options and check the return code. It is an easy and portable way of checking for the existence of a program instead of searching the path (and handle extensions) ourselves. Change-Id: Ic13428c77be4a36d599ccb8c86d893308818eae3
* | Merge branch 'stable'Shawn O. Pearce2010-12-222-61/+90
|\| | | | | | | | | * stable: Fixed race condition in 'repo sync -jN' that would open multiple masters.
| * Fixed race condition in 'repo sync -jN' that would open multiple masters.v1.7.2Doug Anderson2010-12-212-61/+90
| | | | | | | | | | | | | | | | This fixes the SSH Control Masters to be managed in a thread-safe fashion. This is important because "repo sync -jN" uses threads to sync more than one repository at the same time. The problem didn't show up earlier because it was masked if all of the threads tried to connect to the same host that was used on the "repo init" line.
* | Merge branch 'stable'Shawn O. Pearce2010-12-0719-179/+806
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable: (33 commits) Added feature to print a <notice> from manifest at the end of a sync. sync: Use --force-broken to continue other projects upload: Remove --replace option sync --quiet: be more quiet sync: Enable use of git clone --reference Only delete corrupt pickle config files if they exist Don't allow git fetch to start ControlMaster Check for existing SSH ControlMaster Fix for handling values of EDITOR which contain a space. upload: Fix --replace flag rebase: Pass through more options upload: Allow review.HOST.username to override email upload -t: Automatically include local branch name Warn users before uploading if there are local changes sync: Try fetching a tag as a last resort before giving up rebase: Automatically rebase branch on upstrea upload: Automatically --cc folks in review.URL.autocopy Fix format string bugs in grep Do not invoke ssh with -p argument when no port has been specified. Allow files to be copied into new folders ... Conflicts: git_config.py manifest_xml.py subcmds/init.py subcmds/sync.py subcmds/upload.py Change-Id: I4756a6908277e91505c35287a122a775b68f4df5
| * Added feature to print a <notice> from manifest at the end of a sync.v1.7.1Doug Anderson2010-11-013-1/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This feature is used to convey information on a when a branch has ceased development or if it is an experimental branch with a few gotchas, etc. You add it to your manifest XML by doing something like this: <manifest> <notice> NOTE TO DEVELOPERS: If you checkin code, you have to pinky-swear that it contains no bugs. Anyone who breaks their promise will have tomatoes thrown at them in the team meeting. Be sure to bring an extra set of clothes. </notice> <remote ... /> ... </manifest> Carriage returns and indentation are relevant for the text in this tag. This feature was requested by Anush Elangovan on the ChromiumOS team.
| * sync: Use --force-broken to continue other projectsv1.7Andrei Warkentin2010-10-291-3/+15
| | | | | | | | | | | | | | | | | | | | This adds a new flag -f/--force-broken that will allow the rest of the sync process to continue instead of bailing when a particular project fails to sync. Change-Id: I23680f2ee7927410f7ed930b1d469424c9aa246e Signed-off-by: Andrei Warkentin <andreiw@motorola.com> Signed-off-by: Shawn O. Pearce <sop@google.com>
| * upload: Remove --replace optionFicus Kirkpatrick2010-10-292-83/+1
| | | | | | | | | | | | | | It hasn't been necessary for a long time, and its functionality can be accomplished with 'git push'. Change-Id: Ic00d3adbe4cee7be3955117489c69d6e90106559
| * sync --quiet: be more quietShawn O. Pearce2010-10-292-14/+27
| | | | | | | | | | Change-Id: I5e8363c7b32e4546d1236cfc5a32e01c3e5ea8e6 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * sync: Enable use of git clone --referenceShawn O. Pearce2010-10-293-9/+111
| | | | | | | | | | | | | | | | | | Use git clone to initialize a new repository, and when possible allow callers to use --reference to reuse an existing checkout as the initial object storage area for the new checkout. Change-Id: Ie27f760247f311ce484c6d3e85a90d94da2febfc Signed-off-by: Shawn O. Pearce <sop@google.com>
| * Only delete corrupt pickle config files if they existUlrik Sjölin2010-10-291-2/+4
| | | | | | | | | | | | | | | | | | os.remove() raises OSError if the file being removed doesn't exist. Check before calling to ensure we don't raise a useless exception on an already deleted file. Change-Id: I44c1c7dd97a47fcab8afb6c18fdf179158b6dab7 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * Don't allow git fetch to start ControlMasterDoug Anderson2010-10-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | To avoid connectivity problems, we don't want the ssh process that is started by git fetch to become a ControlMaster for the overall sync task. If it did, we would lose connectivity when git fetch was finished with the current project, causing later projects to not fetch efficiently. Change-Id: I8d0dcf9b361276ff8c8b5a6324cbd4a501e9c4dd Signed-off-by: Shawn O. Pearce <sop@google.com>
| * Check for existing SSH ControlMasterDoug Anderson2010-10-291-12/+41
| | | | | | | | | | | | | | | | | | Be more thorough about checking for an existing ssh master by running a test command first, and only opening up a new master if the test fails to connect. Change-Id: I56fe8e7b4dbc123675b7f259e81d359ed0cd55cf Signed-off-by: Shawn O. Pearce <sop@google.com>
| * Fix for handling values of EDITOR which contain a space.Patrick Dubroy2010-08-061-1/+1
| | | | | | | | | | | | | | The shell swallows the 0th arg, which was the filename. Simple fix is to pass in an extra arg for the shell to swallow. Change-Id: Iad6304ba9ccea6e7262ee06ef87d3dac57dbde81
| * upload: Fix --replace flagv1.6.10.2Shawn O. Pearce2010-07-161-2/+2
| | | | | | | | | | | | | | | | --replace started to fail due to a Python error, I forgot to pass through the opt structure to the replace function. Change-Id: Ifcd7a0c715c3fd9070a4c58208612a626382de35 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * rebase: Pass through more optionsv1.6.10.1Shawn O. Pearce2010-07-151-7/+39
| | | | | | | | | | | | | | | | Passing through --whitespace=fix to rebase can be useful to clean up a branch prior to uploading it for review. Change-Id: Id85f1912e5e11ff9602e3b342c2fd7441abe67d7 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * upload: Allow review.HOST.username to override emailv1.6.10Shawn O. Pearce2010-07-152-1/+9
| | | | | | | | | | | | | | | | | | | | Some users might need to use a different login name than the local part of their email address for their Gerrit Code Review user account. Allow it to be overridden with the review.HOST.username configuration variable. Change-Id: I714469142ac7feadf09fee9c26680c0e09076b75 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * upload -t: Automatically include local branch nameShawn O. Pearce2010-07-152-13/+25
| | | | | | | | | | | | | | | | | | | | | | If the -t flag is given to upload, the local branch name is automatically sent to Gerrit Code Review as the topic branch name for the change(s). This requires the server to be Gerrit Code Review v2.1.3-53-gd50c94e or later, which isn't widely deployed right now, so the default is opt-out. Change-Id: I034fcacb405b7cb909147152db427fe69dd7bcbf Signed-off-by: Shawn O. Pearce <sop@google.com>
| * Warn users before uploading if there are local changesAnthony Newnam2010-07-152-0/+36
| | | | | | | | | | Change-Id: I231d7b6a3211e9f5ec71a542a0109b0c195d5e40 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * sync: Try fetching a tag as a last resort before giving upJulius Gustavsson2010-07-151-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If a tagged commit is not reachable by the fetch refspec configured for the git (usually refs/heads/*) it will not be downloaded by 'git fetch'. The tag can however be downloaded with 'git fetch --tags' or 'git fetch tag <tag>'. This patch fixes the situation when a tag is not found after a 'git fetch'. Repo will issue 'git fetch tag <tag>' before giving up completely. Change-Id: I87796a5e1d51fcf398f346a274b7a069df37599a Signed-off-by: Shawn O. Pearce <sop@google.com>
| * rebase: Automatically rebase branch on upstreaDaniel Sandler2010-07-151-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | Usage: repo rebase [[-i] <project>...] Rebases the current topic branch of the specified (or all) projects against the appropriate upstream. Note: Interactive rebase is currently only supported when exactly one project is specified on the command line. Change-Id: I7376e35f27a6585149def82938c1ca99f36db2c4 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * upload: Automatically --cc folks in review.URL.autocopyBen Komalo2010-07-151-1/+27
| | | | | | | | | | | | | | | | | | | | The upload command will read review.URL.autocopy from the project's configuration and append the list of e-mails specified to the --cc argument of the upload command if a non-empty --re argument was provided. Change-Id: I2424517d17dd3444b20f0e6a003be6e70b8904f6 Signed-off-by: Shawn O. Pearce <sop@google.com>
| * Fix format string bugs in grepv1.6.9.8Sebastian Schmidt2010-06-171-4/+4
| | | | | | | | | | | | | | | | This fixes some format string bugs in grep which cause repo to with "TypeError: not enough arguments for format string" when grepping and the output contains a valid Python format string. Change-Id: Ice8968ea106148d409490e4f71a2833b0cc80816
| * Do not invoke ssh with -p argument when no port has been specified.Josh Guilfoyle2010-06-081-5/+12
| | | | | | | | | | | | | | | | | | This change allows local SSH configuration to choose the port number to use when not explicitly set in the manifest. (cherry picked from commit 4c0f67046543c7c6ab24175e143001f14b76ea01) Change-Id: Ibea99cfe46b6a2cc27f754cc3944a2fe10f6fda4
| * Allow files to be copied into new foldersMatthew Buckett2010-05-271-0/+4
| | | | | | | | Change-Id: I7f169e32be5a4328bb87ce7c2ff4b6529e925126
| * Do not emit progress if stderr is not a ttyShawn O. Pearce2010-05-271-2/+5
| | | | | | | | | | | | | | | | Avoids logging progress data into cron logs, etc. Suggested-by: Michael Richardson <mcr@sandelman.ottawa.on.ca> Change-Id: I4eefa2c282f0ca0a95a0185612b52e2146669e4c Signed-off-by: Shawn O. Pearce <sop@google.com>
| * sync: support --jobs to fetch projects simultaneouslyRoy Lee2010-05-271-7/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch does two things for being compatibile with those Python which are built without threading support: 1. As the Python document and Shawn suggested, import dummy_threading when the threading is not available. 2. Reserve the single threaded code and make it default. In cases the --jobs does not work properly with dummy_threading, we still have a safe fallback. Change-Id: I40909ef8e9b5c22f315c0a1da9be38eed8b0a2dc
| * Aliasing sync -s to 'smartsync'v1.6.9.7Nico Sallembien2010-05-172-4/+38
| | | | | | | | | | | | | | This alias will let people use this command without having to remember the option. Change-Id: I3256d9e8e884c5be9e77f70e9cfb73e0f0c544c6
| * sync: kill git fetch process before SSH control master processv1.6.9.6Shawn O. Pearce2010-05-112-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the SSH control master process is killed while an active git fetch is using its network socket, the underlying SSH client may not realize the connection was broken. This can lead to both the client and the server waiting indefinitely for network messages which will never be sent. Work around the problem by keeping track of any processes that use the tunnels we establish. If we are about to kill any of the SSH control masters that we started, ensure the clients using them are successfully killed first. Change-Id: Ida6c124dcb0c6a26bf7dd69cba2fbdc2ecd5b2fc Signed-off-by: Shawn O. Pearce <sop@google.com>
| * upload: Move confirmation threshold from 3 to 5 commitsv1.6.9.5Dan Morrill2010-05-051-1/+1
| | | | | | | | Change-Id: I7275d195cf04f02694206b9f838540b0228ff5e1
| * upload: Confirm unusually large number of uploaded commitDan Morrill2010-05-041-0/+29
| | | | | | | | | | | | | | | | | | Add a sentinel check to require a second explicit confirmation if the user is attempting to upload (or upload --replace) an unusually large number of commits. This may help the user to catch an accidentally incorrect rebase they had done previously. Change-Id: I12c4d102f90a631d6ad193486a70ffd520ef6ae0
| * branches: Enable output of multiple projectsPär Åsfält2010-05-041-5/+7
| | | | | | | | | | | | | | Fixes a bug introduced by 498a0e8a79ab76eeb6adc40f12b04d59820716f9 ("Make 'repo branches -a' the default behavior"). Change-Id: Ib739f82f4647890c46d7c9fb2f2e63a16a0481de
| * Rename _ssh_sock() to fix code style issue.Nico Sallembien2010-04-272-5/+5
| | | | | | | | | | Since _ssh_sock is imported out of the git_command module, the leading underscore should be removed from the function name.
| * Override manifest file only after it is fully written to disk.v1.6.9.4Nico Sallembien2010-04-261-1/+1
| | | | | | | | | | | | We called "Override()" before closing the file passed in argument. Change-Id: I15adb99deb14297ef72fcb1b0945eb246f172fb0
| * Strip refs/heads in the branch sent to the manifest server.Nico Sallembien2010-04-261-0/+3
| | | | | | | | | | | | | | The manifest server doesn't want to have refs/heads passed to it, so we need to strip that when the branch contains it. Change-Id: I044f8a9629220e886fd5e02e3c1ac4b4bb6020ba
| * sync: Safely skip already deleted projectsv1.6.9.3Anthony2010-04-141-25/+29
| | | | | | | | | | | | | | Do not error if a project is missing on the filesystem, is deleted from manifest.xml, but still exists in project.list. Change-Id: I1d13e435473c83091e27e4df571504ef493282dd
| * Add a 'smart sync' option to repo syncv1.6.9.2Nico Sallembien2010-04-133-3/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | This option allows the user to specify a manifest server to use when syncing. This manifest server will provide a manifest pegging each project to a known green build. This allows developers to work on a known good tree that is known to build and pass tests, preventing failed builds to hamper productivity. The manifest used is not "sticky" so as to allow subsequent 'repo sync' calls to sync to the tip of the tree. Change-Id: Id0a24ece20f5a88034ad364b416a1dd2e394226d
| * Allow 'y' as a valid response when confirming identityv1.6.9.1Nico Sallembien2010-04-011-2/+3
| | | | | | | | | | I prefer having to type only one character rather than all three, and it seems like other confirmation prompts use the same style.