summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Implement Kerberos HTTP authentication handler"David Pursehouse2014-02-051-0/+87
|\
| * Implement Kerberos HTTP authentication handlerCarlos Aguado2014-02-041-0/+87
| | | | | | | | | | | | | | | | | | | | | | | | This commit implements a Kerberos HTTP authentication handler. It uses credentials from a local cache to perform an HTTP authentication negotiation using the GSSAPI. The purpose of this handler is to allow the use Kerberos authentication to access review endpoints without the need to transmit the user password. Change-Id: Id2c3fc91a58b15a3e83e4bd9ca87203fa3d647c8
* | Merge "Changes to support sso: repositories for upload"Conley Owens2014-02-041-1/+4
|\ \
| * | Changes to support sso: repositories for uploadSteve Pucci2014-01-311-1/+4
| |/ | | | | | | Change-Id: Iddf90d52f700a1f6462abe76d4f4a367ebb6d603
* / Fix persistent-https relative url resolvingConley Owens2014-01-311-8/+10
|/ | | | | | | | | | | | | | Previously, we would remove 'persistent-' then tack it on at the end if it had been previously found. However, this would ignore urljoin's decision on whether or not the second path was relative. Instead, we were always assuming it was relative and that we didn't want to use a different absolute url with a different protocol. This change handles persistent-https:// in the same way we handled the absense of an explicit protocol. The only difference is that this time instead of temporarily replacing it with 'gopher://', we use 'wais://'. Change-Id: I6e8ad1eb4b911931a991481717f1ade01315db2a
* Update the version number on the repo launcherv1.12.13Conley Owens2014-01-301-1/+1
| | | | | | | The repo launcher version needs to be updated so some users can take advantage of the more robust version number parsing. Change-Id: Ibcd8036363311528db82db2b252357ffd21eb59b
* Share git version parsing code with wrapper modulev1.12.12Conley Owens2014-01-302-14/+19
| | | | | | | 'repo' and 'git_command.py' had their own git version parsing code. This change shares that code between the modules. DRY is good. Change-Id: Ic896d2dc08353644bd4ced57e15a91284d97d54a
* Add wrapper moduleConley Owens2014-01-303-17/+37
| | | | | | | | This takes the wrapper importing code from main.py and moves it into its own module so that other modules may import it without causing circular imports with main.py. Change-Id: I9402950573933ed6f14ce0bfb600f74f32727705
* Respect version hyphenationv1.12.11Conley Owens2014-01-301-1/+1
| | | | | | | | The last change regarding version parsing lost handling of version hyphenation, this restores that. In otherwords, 1.1.1-otherstuff is parsed as (1,1,1) instead of (1,1,0) Change-Id: I3753944e92095606653835ed2bd090b9301c7194
* Handle release candidates in git version parsingConley Owens2014-01-301-4/+8
| | | | | | | Right now repo chokes on git versions like "1.9.rc1". This change treats 'rc*' as a '0'. Change-Id: I612b7b431675ba7415bf70640a673e48dbb00a90
* repo: Fix 'remove-project' regression with multiple projects.v1.12.10David James2014-01-301-3/+6
| | | | | | | In CL:50715, I updated repo to handle multiple projects, but the remove-projects code path was not updated accordingly. Update it. Change-Id: Icd681d45ce857467b584bca0d2fdcbf24ec6e8db
* Properly iterate through valuesv1.12.9Conley Owens2014-01-291-1/+1
| | | | | | | | | | | | | | | | | | | the value of Manifest.projects has changed from being the dictionary to the values of the dictionary. Here we handle this change correctly on a PostRepoUpgrade. From a `git diff v1.12.7 -- manifest_xml.py`: + @property def projects(self): self._Load() - return self._projects + return self._paths.values() self._paths does contain the projects according to this line of manifest_xml.py: 484 self._paths[project.relpath] = project Change-Id: I141f8d5468ee10dfb08f99ba434004a307fed810
* Merge "Only fetch current branch on shallow clients"v1.12.8Conley Owens2014-01-291-4/+7
|\
| * Only fetch current branch on shallow clientsShawn Pearce2014-01-291-4/+7
| | | | | | | | | | | | | | | | Fetching a new branch on a shallow client may download the entire project history, as the depth parameter is not passed to git fetch. Force the fetch to only download the current branch. Change-Id: Ie17ce8eb5e3487c24d90b2cae8227319dea482c8
* | Merge "Don't backtrace when current branch is not uploadable."David Pursehouse2014-01-141-1/+10
|\ \
| * | Don't backtrace when current branch is not uploadable.Warren Turkal2013-12-111-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | The backtrace currently occurs when one uses the "--cbr" argument with the repo upload subcommand if the current branch is not tracking an upstream branch. There may be other cases that would backtrace as well, but this is the only one I found so far. Change-Id: Ie712fbb0ce3e7fe3b72769fca89cc4c0e3d2fce0
* | | Merge "hooks/pre-auto-gc: fix AC detection on OSX Maverick"David Pursehouse2014-01-101-1/+1
|\ \ \
| * | | hooks/pre-auto-gc: fix AC detection on OSX MaverickPawit Pornkitprasan2013-12-171-1/+1
| |/ / | | | | | | | | | | | | | | | The output of pmset has been changed to "Now drawing from 'AC Power'" Change-Id: Id425d3bcd6a28656736a6d2c3096623a3ec053cc
* | | 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