summaryrefslogtreecommitdiffstats
path: root/repo
Commit message (Collapse)AuthorAgeFilesLines
...
* | repo: Cleaned up pylint/pep8 violationsMark E. Hamilton2016-02-151-42/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I noticed when running pylint (as the SUBMITTING_PATCHES file directs) that there were a number of violations reported. This makes it difficult to see violations I might have introduced. This commit corrects all pylint violations in the repo script. First I ran this to clean up the formatting: autopep8 --max-line-length=80 --indent-size 2 repo Following that the following violations remained: % pylint --rcfile=.pylintrc repo ************* Module repo W:220,21: Redefining name 'init_optparse' from outer scope (line 156) (redefined-outer-name) W:482, 2: No exception type(s) specified (bare-except) C:704, 0: Old-style class defined. (old-style-class) For line 220, the parameter to _GitcInitOptions was renamed so as not to mask the init_optparse global. For line 482, a pylint directive was added to disable the bare-execpt violation for just that line. For line 704, the _Options class was changed to subclass object. Additionally, the comments at lines 107-113 were spaced out to line up with the comment at line 112 that autopep8 moved. This script now has a pylint score of 10.0 Change-Id: I779b66eb6b061a195d3c4372b99dec1b6d2a214f
* | repo: Add check of REPO_URL env variableMark E. Hamilton2016-02-091-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to be able to run repo on a system that is not connected to the Internet and cannot access https://gerrit.googlesource.com. We can put a clone of that repos there, but would prefer to use the stable version of the repo script instead of a locally modified version. This commit adds a check for the REPO_URL environment variable. If that is set and not empty its value will be set in the REPO_URL global in repo. Otherwise the standard path will be used. Change-Id: I0616f5f81ef75f3463b73623b892cb5eed6bb7ba
* | Fix gitc-init behaviorv1.12.32Dan Willemsen2015-10-071-4/+34
| | | | | | | | | | | | | | | | | | | | | | | | With gitc-init, a gitc client may be specified using '-c'. If we're not currently in that client, we need to change directories so that we don't affect the local checkout, and to ensure that repo is checked out in the new client. This also makes '-c' optional if already in a gitc client, to match the rest of the init options. Change-Id: Ib514ad9fd101698060ae89bb035499800897e9bd
* | launcher: Update repo after applying clone.bundleDan Willemsen2015-09-021-3/+2
| | | | | | | | | | | | | | | | | | | | | | If the clone.bundle is out of date, repo may be installed with an old version. It will upgrade with the next sync a day later, or when "repo selfupdate" is run. This behavior was added to normal project downloads, but was never added to the repo launcher. Change-Id: Ib04bef3a658c98fe1b6c53b3e8d0067165a5e3f7
* | gitc: Improve help visibilityv1.12.28Dan Willemsen2015-09-011-2/+15
| | | | | | | | | | | | | | This improves the visiblity of gitc-init if we can get the gitc config, and hides it otherwise. Change-Id: I82830b0b07c311e8c74397ba79eb4c361f8b6fb5
* | Fix gitc check if gitc isn't installedDan Willemsen2015-08-311-2/+3
| | | | | | | | | | | | This was doing cwd.startswith(''), which is always true. Change-Id: Icc059c09492b31e2d7651e4a595bda783c5abc47
* | GITC: Pull GITC Manifest Dir from the config.Simran Basi2015-08-311-2/+27
| | | | | | | | | | | | | | Updates the repo launcher and gitc_utils to pull the manifest directory location out of the gitc config file. Change-Id: Id08381b8a7d61962093d5cddcb3ff6afbb13004b
* | GITC: Add gitc-init subcommand to repo.Simran Basi2015-08-121-3/+24
|/ | | | | | | | | | | | Adds the new gitc-init command to set up a GITC client. Gitc-init sets up the client directory and calls repo init within it. Once the repo is initialized, then generates a GITC manifest file by using git ls-remote on each project and retrieving the HEAD SHA to use as the revision attribute. Gitc-init inherits from and has all the options as repo init. Change-Id: Icd7e47e90eab752a77de7c80ebc98cfe16bf6de3
* Revert "Change the min git version from 1.7.2 to 1.8.2"Anthony King2015-03-301-2/+2
| | | | | | This reverts commit 52b99aa91d0fbb5ea363b5febb367d602dbc56db. Change-Id: I01d93704c92f7af1ca2b36dbc9509ee1290e2d3c
* Change the min git version from 1.7.2 to 1.8.2Conley Owens2015-03-181-2/+2
| | | | | | This is needed for the --unshallow option of git fetch. Change-Id: Ifdc5cec6130315c643924328fea425f1b94cb04a
* Don't exit with error on HTTP 401 when downloading clone bundlePascal Bach2015-03-111-1/+1
| | | | | | | | If the server returns HTTP 401 (unauthorized) when attempting to download clone bundle files, ignore it and continue, rather than exiting with a fatal error. Change-Id: I2c7ee03e149c354c7e4ad6ea1ebf266534778fe1
* Change implementation of cleanup in case of clone failure during "repo init"Mani Chandel2014-09-031-1/+1
| | | | | | | | Fix includes: 1. It deletes only .repo/repo instead of the whole .repo repository. Bug: Issue 161 Change-Id: I1ab8caa7538fec5e6206d1b029f63bd3f60dedcd
* Prevent warning twice about Python 3 usageAnthony King2014-05-061-4/+4
| | | | | | | Only warn about using Python 3 when running the repo script directly. This prevents the user being warned twice. Change-Id: I2ee51ea2fa0127ea310598320e460ec9f38c6488
* Don't try to remove .repo if it doesn't existMitchel Humpherys2014-03-121-6/+2
| | | | | | | | | | | | | | | | | | Part of the cleanup path for _Init is removing the .repo directory. However, _Init can fail before creating the .repo directory, so trying to remove it raises another exception: fatal: invalid branch name 'refs/changes/53/55053/4' Traceback (most recent call last): File "/home/mitchelh/bin/repo", line 775, in <module> main(sys.argv[1:]) File "/home/mitchelh/bin/repo", line 749, in main os.rmdir(repodir) OSError: [Errno 2] No such file or directory: '.repo' Fix this by only removing .repo if it actually exists. Change-Id: Ia251d29e9c73e013eb296501d11c36263457e235
* 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-301-3/+16
| | | | | | | '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
* 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
* Add --archive option to init to sync using git archiveJulien Campergue2013-12-101-0/+4
| | | | | | | | | | | | | | | 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>
* 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
* 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
* | 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
* | 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
* | Move Python version checking to a separate moduleDavid Pursehouse2013-05-231-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new module with methods for checking the Python version. Instead of handling Python3 imports with try...except blocks, first check the python version and then import the relevant modules. This makes the code a bit cleaner and will result in less diff when/if we remove support for Python < 3 later. Use the same mechanism to handle `input` vs. `raw_input` and add suppression of pylint warnings caused by redefinition of the built-in method `input`. Change-Id: Ia403e525b88d77640a741ac50382146e7d635924 Also-by: Chirayu Desai <cdesai@cyanogenmod.org> Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* | repo: add rudimentary version checkingChirayu Desai2013-04-171-0/+14
| | | | | | | | | | Change-Id: I957775c7ce0821971cc2320597e1a7a31950bcf3 Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* | Special handling for manifest group "default"David Holmer2013-04-031-1/+2
|/ | | | | | | | | | | | | | | | | | | | | Change Details: * Make "default" a special manifest group that matches any project that does not have the special project group "notdefault" * Use "default" instead of "all,-notdefault" when user does not specify manifest group * Expand -g option help to include example usage of manifest groups Change Benefits: * Allow a more intuitive and expressive manifest groups specification: * "default" instead of "all,-notdefault" * "default,foo" instead of "all,-notdefault,foo" * "default,-foo" instead of "all,-notdefault,-foo" * "foo,-default" which has no equivalent * Default manifest groups behavior can be restored by the command 'repo init -g default'. This is significantly more intuitive than the current equivalent command 'repo init -g all,-notdefault'. Change-Id: I6d0673791d64a650110a917c248bcebb23b279d3
* Don't exit with error on HTTP 403 when downloading clone bundleDavid Pursehouse2013-01-311-1/+1
| | | | | | | | If the server returns HTTP 403 (forbidden) when attempting to download clone bundle files, ignore it and continue, rather than exiting with a fatal error. Change-Id: Icf78cba0332b51b0e7b622f7c7924369b551b6f6
* Sync help text in repo from init.pyDavid Pursehouse2012-11-151-2/+3
| | | | | | | | Change Ia6032865f9296b29524c2c25b72bd8e175b30489 improved the help text for the init command, but the same improvement was not made in repo. Change-Id: Idc34e479b5237137b90e8b040824776e4f7883b0
* Tidy up code formatting a bit moreDavid Pursehouse2012-11-141-3/+3
| | | | | | | | | | | | Enable the following Pylint warnings: C0322: Operator not preceded by a space C0323: Operator not followed by a space C0324: Comma not followed by a space And make the necessary fixes. Change-Id: I74d74283ad5138cbaf28d492b18614eb355ff9fe
* Fix: "Statement seems to have no effect"David Pursehouse2012-11-141-1/+1
| | | | | | | | | | | | Pylint raises an error on the call: print Change it to: print() Change-Id: I507e1b3dd928fa6c32ea7e86260fb3d7b1428e6f
* Change print statements to work in python3Sarah Owens2012-11-131-67/+59
| | | | | | This is part of a series of changes to introduce Python3 support. Change-Id: I373be5de7141aa127d7debdbce1df39148dbec32
* More code style cleanupDavid Pursehouse2012-11-141-5/+5
| | | | | | | | | Clean up a few more unnecessary usages of lambda in `repo` that were missed in the previous sweep that only considered files ending in .py. Remove a duplicate import. Change-Id: I03cf467a5630cbe4eee6649520c52e94a7db76be
* Remove magic hackDavid Pursehouse2012-11-141-9/+1
| | | | | | | | | | | | | It should be assumed that on modern development environments, python is accessible to /usr/bin/env Change the shebang as necessary and remove the magic hack. This also means losing the -E option on the call to python, so that PYTHONPATH and PYTHONHOME will be respected and local configuration problems in those vars would be noticed Change-Id: I6f0708ca7693f05a4c3621c338f03619563ba630
* Change usages of xrange() to range()Sarah Owens2012-11-011-1/+1
| | | | | | | | | | | | In Python3, range() creates a generator rather than a list. None of the parameters in the ranges changed looked large enough to create an impact in memory in Python2. Note: the only use of range() was for iteration and did not need to be changed. This is part of a series of changes to introduce Python3 support. Change-Id: I50b665f9296ea160a5076c71f36a65f76e47029f
* Merge "Use python3 urllib when urllib2 not available"Conley Owens2012-11-011-11/+22
|\
| * Use python3 urllib when urllib2 not availableSarah Owens2012-10-311-11/+22
| | | | | | | | | | | | This is part of a series of changes to introduce Python3 support. Change-Id: I605b145791053c1f2d7bf3c907c5a68649b21d12
* | Merge "Use 'stat' package instead of literals for mkdir()"Conley Owens2012-11-011-1/+2
|\ \ | |/ |/|
| * Use 'stat' package instead of literals for mkdir()Sarah Owens2012-10-311-1/+2
| | | | | | | | | | | | This is part of a series of changes to introduce Python3 support. Change-Id: Ic988ad181d32357d82dfa554e70d8525118334c0
* | Update minimum git version to 1.7.2Conley Owens2012-10-261-2/+2
| | | | | | | | | | | | We now use the -c flag which was introduced in git 1.7.2. Change-Id: I9195c0f6ac9fa63e783a03628049fe2c67d258ff
* | Add a PGP key for cco3@android.comv1.11.0Conley Owens2012-10-261-1/+33
| | | | | | | | | | | | This change adds a PGP key to allow cco3@android.com to sign releases. Change-Id: I18a70c8b7d8f272dd1aad9d6b2e4a237ef35af33
* | Update PGP keys during _PostRepoUpgrade in `sync`Conley Owens2012-10-251-7/+7
|/ | | | | | | | Previously, if a key was added, a client wouldn't add the key during the sync step. This would cause issues if a new key were added and a subsequent release were signed by that key. Change-Id: I4fac317573cd9d0e8da62aa42e00faf08bfeb26c
* Use modern Python exception syntaxSarah Owens2012-10-231-10/+10
| | | | | | | | | | | "except Exception as e" instead of "except Exception, e" This is part of a transition to supporting Python 3. Python >= 2.6 support "as" syntax. Note: this removes Python 2.5 support. Change-Id: I309599f3981bba2b46111c43102bee38ff132803
* Rename "dir" variablesMickaël Salaün2012-10-101-15/+15
| | | | | | | The variable name "dir" conflicts with the name of a Python built-in function: http://docs.python.org/library/functions.html#dir Change-Id: I850f3ec8df7563dc85e21f2876fe5e6550ca2d8f
* Clean up importsDavid Pursehouse2012-09-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | manifest_xml: import `HEAD` and `R_HEADS` from correct module version: import `HEAD` from correct module `HEAD` and `R_HEADS` should be imported from the git_refs module, where they are originally defined, rather than from the project module. repo: remove unused import of readline cherry_pick: import standard modules on separate lines smartsync: import subcmd modules explicitly from subcmd Use: `import re import sys` and `from subcmds.sync import Sync` Instead of: `import sys, re` and `from sync import Sync` Change-Id: Ie10dd6832710939634c4f5c86b9ba5a9cd6fc92e
* Use gerrit.googlesource.com/git-repo as the default URLShawn O. Pearce2012-06-051-1/+1
| | | | | | | This is basically the same repository, but may be slightly more up-to-date than the one on code.google.com/p/git-repo. Change-Id: I5c99539f53231958eefb6993f00997c9adf0a3c9
* Detect git is not installedShawn O. Pearce2012-06-051-2/+12
| | | | | | | Fix detection for Git not being in $PATH during the initial run of `repo init` in a new directory. Change-Id: I2b1fcce1fb8afc47271f5c3bd2a28369009b2fb7
* Add a --platform flagConley Owens2012-04-231-0/+5
| | | | | | | | | | Projects may optionally specify their platform (eg, groups="platform-linux" in the manifest). By default, repo will automatically detect the platform. However, users may specify --platform=[auto|all|linux|darwin]. Change-Id: Ie678851fb2fec5b0938aede01f16c53138a16537
* Refine groups functionalityConley Owens2012-04-231-2/+2
| | | | | | | | | | | | | | | Every project is in group "default". "-default" does not remove it from this project. All group names specified in the manifest are positive names as opposed to a mix of negative and positive. Specified groups are resolved in order. If init is supplied with --groups="group1,-group2", the following describes the project selection when syncing: * all projects in "group1" will be added, and * all projects in "group2" will be removed. Change-Id: I1df3dcdb64bbd4cd80d675f9b2d3becbf721f661
* Add manifest groupsv1.8.2Colin Cross2012-04-131-1/+5
| | | | | | | | | | | | | | | | | Allows specifying a list of groups with a -g argument to repo init. The groups act on a group= attribute specified on projects in the manifest. All projects are implicitly labelled with "default" unless they are explicitly labelled "-default". Prefixing a group with "-" removes matching projects from the list of projects to sync. If any non-inverted manifest groups are specified, the default label is ignored. Change-Id: I3a0dd7a93a8a1756205de1d03eee8c00906af0e5 Reviewed-on: https://gerrit-review.googlesource.com/34570 Reviewed-by: Shawn Pearce <sop@google.com> Tested-by: Shawn Pearce <sop@google.com>
* Add support for Apache Digest authentication for repo init.Xiaodong Xu2012-03-141-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | repo tool supports only Basic authentication for now. For those who want to use this tool to manage their own projects, in case the administrator has configured the Apache server with Digest authentication method, users will fail to be authenticated when they run the command 'repo init'. Add the digest authentication password manager to the handler list will fix this issue. Since Git HTTP protocol will require the user be authenticated for fetch operation first before pushing commits to the remote, it is unlikely for the administrator to implement anonymous read (aka pull) access and write access (aka push) for authenticated user. Both read and write have to be authenticated. Be aware that the user may have to add an extra line in his ~/.netrc file: ------------------- account example.com ------------------- where 'example.com' is the realm for Apache Digest authentication. Change-Id: I76eb27b205554426d9ce1965deaaf727b87916cd Signed-off-by: Xiaodong Xu <stid.smth@gmail.com>