summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "repo: Support multiple branches for the same project."Conley Owens2014-01-106-79/+190
|\
| * repo: Support multiple branches for the same project.David James2013-10-146-79/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is often useful to be able to include the same project more than once, but with different branches and placed in different paths in the workspace. Add this feature. This CL adds the concept of an object directory. The object directory stores objects that can be shared amongst several working trees. For newly synced repositories, we set up the git repo now to share its objects with an object repo. Each worktree for a given repo shares objects, but has an independent set of references and branches. This ensures that repo only has to update the objects once; however the references for each worktree are updated separately. Storing the references separately is needed to ensure that commits to a branch on one worktree will not change the HEAD commits of the others. One nice side effect of sharing objects between different worktrees is that you can easily cherry-pick changes between the two worktrees without needing to fetch them. Bug: Issue 141 Change-Id: I5e2f4e1a7abb56f9d3f310fa6fd0c17019330ecd
* | Merge "Canonicalize project hooks path before use"Conley Owens2014-01-091-2/+2
|\ \
| * | Canonicalize project hooks path before useJesse Hall2013-12-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the top-level .repo directory is moved somewhere else (e.g. a different drive) and replaced with a symlink, _InitHooks() will create broken symlinks. Resolving symlinks before computing the relative path for the symlink keeps the path within the repo tree, so the tree can be moved anywhere. Change-Id: Ifa5c07869e3477186ddd2c255c6c607f547bc1fe
* | | Fix os.mkdir race condition.David James2013-12-261-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | This code checks whether a dir exists before creating it. In between the check and the mkdir call, it is possible that another process will have created the directory. We have seen this bug occur many times in practice during our 'repo init' tests. Change-Id: Ia47d39955739aa38fd303f4e90be7b4c50d9d4ba
* | | Merge "Add --archive option to init to sync using git archive"Conley Owens2013-12-185-5/+98
|\ \ \
| * | | Add --archive option to init to sync using git archiveJulien Campergue2013-12-105-5/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This significantly reduces sync time and used brandwidth as only a tar of each project's revision is checked out, but git is not accessible from projects anymore. This is relevant when git is not needed in projects but sync speed/brandwidth may be important like on CI servers when building several versions from scratch regularly for example. Archive is not supported over http/https. Change-Id: I48c3c7de2cd5a1faec33e295fcdafbc7807d0e4d Signed-off-by: Julien Campergue <julien.campergue@parrot.com>
* | | | Fix error in xml manifest doc.Warren Turkal2013-12-101-1/+1
|/ / / | | | | | | | | | | | | | | | | | | The docs on the annotations say that zero or more may exist as a child of a project, so that means that a "*" instead of a "?" should be used. Change-Id: Iff855d003dfb05cd980f285a237332914e1dad70
* / / Update the commit-msg hook to the version from Gerrit 2.6David Pursehouse2013-11-291-2/+2
|/ / | | | | | | Change-Id: Iaf21ba8d2ceea58973dbc56f0b4ece54500cd997
* | Merge "Allow using repo with python3"David Pursehouse2013-11-221-2/+1
|\ \
| * | Allow using repo with python3Chirayu Desai2013-11-211-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Switching from python2 to python3 in the same workspace isn't currently supported, due to a change in the pickle version (which isn't supported by python2) * Basic functionality does work with python3, however not everything is expected to Change-Id: I4256b5a9861562d0260b503f972c1569190182aa
* | | Fix print of git-remote-persistent-https errorConley Owens2013-11-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If git-remote-persistent-https fails, we use an iter() and then subsequently a .read() on stderr. Python doesn't like this and gives the following error message: ValueError: Mixing iteration and read methods would lose data This change removes the use of iter() to avoid the issue. Change-Id: I980659b83229e2a559c20dcc7b116f8d2476abd5
* | | Remove trailing whitespaceChirayu Desai2013-11-212-6/+6
|/ / | | | | | | Change-Id: I56bcb559431277d40070fa33c580c6c3525ff9bc
* | Fix some python3 encoding issuesChirayu Desai2013-11-215-6/+6
| | | | | | | | | | | | * Add .decode('utf-8') where needed * Add 'b' to `open` where needed, and remove where unnecessary Change-Id: I0f03ecf9ed1a78e3b2f15f9469deb9aaab698657
* | Fix a small whitespace consistency issueConley Owens2013-10-161-1/+1
| | | | | | | | Change-Id: Ie98c79833ca5e7ef71666489135f7491223f779c
* | Merge "Dan't accessing attr of None (`manifest` subcmd)"v1.12.7Conley Owens2013-10-161-1/+3
|\ \
| * | Dan't accessing attr of None (`manifest` subcmd)Conley Owens2013-10-161-1/+3
| | | | | | | | | | | | | | | | | | | | | If d.remote is None, this code failed for obvious reasons. This is a simple fix. Change-Id: I413756121e444111f1e3c7dc8bc8032467946c13
* | | Only check merge destination if it isn't Nonev1.12.6Conley Owens2013-10-151-9/+10
|/ / | | | | | | Change-Id: Ifb1dcd07142933489e93a1f4f03e38289087b609
* | Fix indentationv1.12.5David Pursehouse2013-10-152-11/+10
| | | | | | | | | | | | | | git-repo uses 2 space indentation. A couple of recent changes introduced 4 space indentation in some modules. Change-Id: Ia4250157c1824c1b5e7d555068c4608f995be9da
* | Merge "Better handling of duplicate default"David Pursehouse2013-10-151-5/+14
|\ \
| * | Better handling of duplicate defaultJulien Campergue2013-10-101-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, an error is raised if more than one default is defined. When including another manifest, it is likely that a default has been defined in both manifests. Don't raise an error if all the defaults defined have the same attributes. Change-Id: I2603020687e2ba04c2c62c3268ee375279b34a08 Signed-off-by: Julien Campergue <julien.campergue@parrot.com>
* | | Merge "repo: use explicit Python executable to run main.py"Conley Owens2013-10-101-2/+2
|\ \ \ | |_|/ |/| |
| * | repo: use explicit Python executable to run main.pyanatoly techtonik2013-09-211-2/+2
| | | | | | | | | | | | | | | | | | Small step to support non-POSIX platforms. Change-Id: I3bdb9c82c2dfbacb1da328caaa1a406ab91ad675
* | | Merge "Respect remote aliases"Conley Owens2013-10-101-1/+6
|\ \ \
| * | | Respect remote aliasesConley Owens2013-10-081-1/+6
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, change I7150e449341ed8655d398956a095261978d95870 had broken alias support in order to fix the manifest command to keep it from spitting projects that point to an alias that wasn't recorded. This commit reverts that commit and instead solves the issue more correctly, outputting the alias in the remote node of the manifest and respecting that alias when outputting the list of projects. Change-Id: I941fc4adb7121d2e61cedc5838e80d3918c977c3
* | | Don't upload when dest branch is not merge branchConley Owens2013-10-101-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: - `repo init -b master` / sync a project - In one project: `git checkout -b work origin/branch-thats-not-master` - make some changes, `git commit` - `repo upload .` - Upload will now be skipped with a warning instead of being uploaded to master Change-Id: I990b36217b75fe3c8b4d776e7fefa1c7d9ab7282
* | | don't pass project revision to UploadForReviewColin Cross2013-10-081-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passing a project revisionExpr to UploadForReview will cause it to try to push to refs/for/<sha> if the revision points to a sha instead of a branch. Pass None for dest_branch if no destination branch has been specified, which will cause UploadForReview to upload to the merge branch. There is room for further improvement, the user prompts will still print "Upload project <project> to remote branch <sha>", and then upload to the merge branch and not the sha, but that is the same behavior that was in 1.12.2. Change-Id: I06c510336ae67ff7e68b5b69e929693179d15c0b
* | Merge "Accept all UTF-8 committer names"v1.12.4Conley Owens2013-09-271-1/+1
|\ \
| * | Accept all UTF-8 committer namesConley Owens2013-09-271-1/+1
| | | | | | | | | | | | Change-Id: I7d9d49a8bacf2dc332614d26cdfcc905be7a5290
* | | Merge "Do not use print_function from __future__"Conley Owens2013-09-271-63/+70
|\ \ \
| * | | Do not use print_function from __future__Conley Owens2013-09-271-63/+70
| |/ / | | | | | | | | | | | | | | | | | | | | | Python 2.4 and 2.5 do not have a print_function available, so we need a compatible print function for displaying an error message when the user has an older version of Python. Change-Id: I54d7297be98bb53970e873b36c6605e6dad386c3
* | | Assume http upload if ssh_info cannot be parsedConley Owens2013-09-271-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When uploading a change for review, we sometimes request /ssh_info to get the correct port number for uploading via ssh (regardless of whether or not we intend to upload over ssh). If we have trouble accessing /ssh_info (for authentication reasons, etc), we now press on under the assumption that we will upload via http instead of aborting. Change-Id: Ica6bbeac1279e89424a903529649b7f4af0b6937
* | | Merge changes I4b77af22,Ib5bc2de5David Pursehouse2013-09-271-1/+4
|\ \ \ | |/ / |/| | | | | | | | | | | * changes: Sync: Improved error message when manifest server RPC call fails Sync: Print name of manifest server used for smart sync/smart tag
| * | Sync: Improved error message when manifest server RPC call failsDavid Pursehouse2013-09-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the RPC call fails, the error message returned by the server is printed, but it is not obvious that this is caused by RPC call failure. Prefix the error message with a descriptive message that explains what went wrong. Change-Id: I4b77af22aacc2e9843c4df9d06bf54e41d9692ff
| * | Sync: Print name of manifest server used for smart sync/smart tagDavid Pursehouse2013-09-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When syncing using smart sync or smart tag mode, print the url of the manifest server that is being used. This is useful in organisations that have multiple manifest servers used in different manifest branches. Change-Id: Ib5bc2de5af6f4a942d0ef735c65cbc0721059a61
* | | Merge "Wait for git-remote-persistent-https -print_config to exit"Conley Owens2013-09-261-1/+6
|\ \ \
| * | | Wait for git-remote-persistent-https -print_config to exitDave Borowitz2013-09-251-1/+6
| |/ / | | | | | | | | | Change-Id: I5ab96e7c8575682217d440ddc52ecfdc8c35f179
* / / Give the node _Default class a destBranchExprConley Owens2013-09-251-0/+1
|/ / | | | | | | | | | | | | | | | | This is to avoid the following AttributeError: line 681, in _ParseProject AttributeError: '_Default' object has no attribute 'destBranchExpr' Change-Id: Ia9f7e2cce1409d22d71bc8a74b33edf2b27702ca
* | Update gpg key for cco3@android.comv1.12.3.1v1.12.3Conley Owens2013-07-011-28/+28
| | | | | | | | | | | | | | cco3@android.com has a new gpg key, so this needs to be updated in the repo scripts so that he can sign updates. Change-Id: I9f058263b35bd027502d6e3b814d7aeb801a1e6e
* | upload: fix display of destination branch for SingleBranchChirayu Desai2013-06-281-1/+1
| | | | | | | | | | | | | | | | | | | | The command `repo upload --cbr -D <some branch>` will display the default revision, and not the actual destination branch. Fix that and display the branch to which the change will be uploaded to. Change-Id: I712ed0871c819dce6774c47254dac4efec4532e0
* | DownloadPatchSet: fetch the change only, and nothing else.Chirayu Desai2013-06-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | * Previously, it would run `git fetch <remote.name> <change refspec> <remote.fetch>, which would fetch all the branches, even if 'sync-c' was set to true in the manifest. * Fix that, since all it needs to fetch is the change that was asked for, and nothing else. * For some more info, refer to the discussion on: I42a9d419b51f5da03f20a640ea68993cda4b6500 Change-Id: Ibc801695d56fc16e56f999e0f61393f54461785f
* | Merge "sync: assign manifest_name earlier"David Pursehouse2013-06-111-1/+2
|\ \
| * | sync: assign manifest_name earlierChirayu Desai2013-06-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * manifest_name was never set if opt.smart_sync or opt.smart_tag is used. * Set it earlier, so that the code handles it correctly when it is None. * An UnboundLocalError is raised if running `repo sync` without any options: local variable 'manifest_name' referenced before assignment * This fixes the above regression caused by commit 53a6c5d93a8ba708208826dab64c55fe97f06d0b Change-Id: I57086670f3589beea8461ce0344f6ec47ab85b7b
* | | Fix urllib.parse (urlparse) handlingChirayu Desai2013-06-112-3/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert "Fix "'module' object is not callable" error", and fix it properly. * The urlparse module is renamed to urllib.parse in Python 3. * This commit fixes the code to use "urllib.parse.urlparse" instead of creating a new module urlib and setting urlib.parse to urlparse.urlparse. * Fixes an AttributeError: 'function' object has no attribute 'uses_relative' This reverts commit cd51f17c643370e6199216462c1be36f04d57291. Change-Id: I48490b20ecd19cf5a6edd835506ea5a467d556ac
* | Merge "Fix a few issues with dest-branch and multiples"Conley Owens2013-06-101-2/+4
|\ \
| * | Fix a few issues with dest-branch and multiplesBryan Jacobs2013-06-031-2/+4
| | | | | | | | | | | | | | | | | | | | | This fixes dest-branch display with >1 branch being uploaded to at once, and correctly handles setting the target branch in that case. Change-Id: If5e9c7ece02cc0d903e2cb377485ebea73a07107
* | | Merge "Fix "'module' object is not callable" error"Conley Owens2013-06-102-2/+2
|\ \ \
| * | | Fix "'module' object is not callable" errorDavid Pursehouse2013-06-082-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a couple of files the urlparse method was not being set up correctly for python < 3 and this resulted in an error being thrown when trying to call it. Change-Id: I4d2040ac77101e4e228ee225862f365ae3d96cec
* | | | Degrade: Fix smart sync/smart tagVictor Boivie2013-06-081-3/+4
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was broken in b2bd91c, which updated the manifest after it had been overridden, which made it fall back to the original file (and not the one from the manifest server). This builds on 0766900 and overrides the manifest by the one downloaded from the manifest server completely. Change-Id: Ic3972390a68919b614616631d99c9e7a63c0e0db
* | | Merge "Print project name for -p on mirror clients"Conley Owens2013-06-051-1/+6
|\ \ \