summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Make -notdefault a default manifest group"Conley Owens2013-01-141-3/+2
|\
| * Make -notdefault a default manifest groupMatt Gumbel2012-12-211-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When trying to render manifest with SHAs, projects in group notdefault caused the following crash: Traceback (most recent call last): File ".repo/repo/main.py", line 385, in <module> _Main(sys.argv[1:]) File ".repo/repo/main.py", line 365, in _Main result = repo._Run(argv) or 0 File ".repo/repo/main.py", line 137, in _Run result = cmd.Execute(copts, cargs) File ".repo/repo/subcmds/manifest.py", line 129, in Execute self._Output(opt, manifest) File ".repo/repo/subcmds/manifest.py", line 79, in _Output peg_rev = opt.peg_rev) File ".repo/repo/manifest_xml.py", line 199, in Save p.work_git.rev_parse(HEAD + '^0')) File ".repo/repo/project.py", line 2035, in runner capture_stderr = True) File ".repo/repo/git_command.py", line 215, in __init__ raise GitError('%s: %s' % (command[1], e)) error.GitError: rev-parse: [Errno 2] No such file or directory: 'prebuilts/eclipse-build-deps' This patch resolves the issue by making sure that -notdefault is always used as a default manifest group so that notdefault projects are not rendered out by the manifest subcmd. Change-Id: I4a8bd18ea7600309f39ceff1b1ab6e1ff3adf21d Signed-off-by: Matt Gumbel <matthew.k.gumbel@intel.com>
* | Support resolving relative fetch URLs on persistent-https://v1.12.0Shawn Pearce2013-01-021-1/+8
|/ | | | | | | | | Some versions of Python will only attempt to resolve a relative URL if they understand the URL scheme. Convert persistent-http:// and persistent-https:// schemes to the more typical http:// and https:// versions for the resolve call. Change-Id: I99072d5a69be8cfaa429a3ab177ba644d928ffba
* Allow sync to run even when the manifest is broken.Torne (Richard Coles)2012-12-051-2/+5
| | | | | | | | | If the current manifest is broken then "repo sync" fails because it can't retrieve the default value for --jobs. Use 1 in this case, in order that you can "repo sync" to get a fixed manifest (assuming someone fixed it upstream). Change-Id: I4262abb59311f1e851ca2a663438a7e9f796b9f6
* Represent git-submodule as nested projects, take 2Che-Liang Chiou2012-11-195-57/+372
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Previous submission of this change broke Android buildbot due to incorrect regular expression for parsing git-config output. During investigation, we also found that Android, which pulls Chromium, has a workaround for Chromium's submodules; its manifest includes Chromium's submodules. This new change, in addition to fixing the regex, also take this type of workarounds into consideration; it adds a new attribute that makes repo not fetch submodules unless submodules have a project element defined in the manifest, or this attribute is overridden by a parent project element or by the default element.) We need a representation of git-submodule in repo; otherwise repo will not sync submodules, and leave workspace in a broken state. Of course this will not be a problem if all projects are owned by the owner of the manifest file, who may simply choose not to use git-submodule in all projects. However, this is not possible in practice because manifest file owner is unlikely to own all upstream projects. As git submodules are simply git repositories, it is natural to treat them as plain repo projects that live inside a repo project. That is, we could use recursively declared projects to denote the is-submodule relation of git repositories. The behavior of repo remains the same to projects that do not have a sub-project within. As for parent projects, repo fetches them and their sub-projects as normal projects, and then checks out subprojects at the commit specified in parent's commit object. The sub-project is fetched at a path relative to parent project's working directory; so the path specified in manifest file should match that of .gitmodules file. If a submodule is not registered in repo manifest, repo will derive its properties from itself and its parent project, which might not always be correct. In such cases, the subproject is called a derived subproject. To a user, a sub-project is merely a git-submodule; so all tips of working with a git-submodule apply here, too. For example, you should not run `repo sync` in a parent repository if its submodule is dirty. Change-Id: I4b8344c1b9ccad2f58ad304573133e5d52e1faef
* Allow init command to set options from environment variablesDavid Pursehouse2012-11-171-0/+4
| | | | | | | | The manifest URL and mirror location can be specified in environment variables which will be used if the options are not passed on the command line Change-Id: Ida87968b4a91189822c3738f835e2631e10b847e
* Allow command options to be set from environment variablesDavid Pursehouse2012-11-172-0/+41
| | | | | | | | | | | | Extend the Command base class to allow options to be set from values in environment variables, if the user has not given the option on the command line and the environment variable is set. Derived classes of Command can override the implementation of the method _GetEnvironmentOptions to configure which of its options may be set from environment variables. Change-Id: I7c780bcf9644d6567893d9930984c054bce7351e
* Merge "Raise a NoManifestException when the manifest DNE"Conley Owens2012-11-163-1/+14
|\
| * Raise a NoManifestException when the manifest DNEConley Owens2012-11-153-1/+14
| | | | | | | | | | | | | | | | | | When a command (eg, `repo forall`) expects the manifest project to exist, but there is no manifest, an IOException gets raised. This change defines a new Exception type to be raised in these cases and raises it when project.py fails to read the manifest. Change-Id: Iac576c293a37f7d8f60cd4f6aa95b2c97f9e7957
* | Better error message if 'remove-project' refers to non-existent projectDavid Pursehouse2012-11-161-3/+2
|/ | | | | | | | | | If a local manifest includes a 'remove-project' element that refers to a project that does not exist in the manifest, the error message is a bit cryptic. Change the error message to make it clearer what is wrong. Change-Id: I0b1043aaec87893c3128211d3a9ab2db6d600755
* Add option to abort on error in forallVictor Boivie2012-11-161-2/+13
| | | | | | | | | | Add a new option (-e, --abort-on-errors) which will cause forall to abort without iterating through remaining projects if a command exits unsuccessfully. Bug: Issue 17 Change-Id: Ibea405e0d98b575ad3bda719d511f6982511c19c Signed-off-by: Victor Boivie <victor.boivie@sonyericsson.com>
* Merge "Simplify error handling in subcommand execution"Conley Owens2012-11-141-16/+15
|\
| * Simplify error handling in subcommand executionConley Owens2012-11-141-16/+15
| | | | | | | | | | | | | | Instead of using a nested try (which repo is plagued with), use a single try when executing the appropriate subcommand. Change-Id: I32dbfc010c740c0cc42ef8fb6a83dfe87f87e54a
* | 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
* | Add repo info commandOlof Johansson2012-11-152-0/+198
| | | | | | | | | | | | | | | | | | | | | | The info command will print information regarding the current manifest and local git branch. It will also show the difference of commits between the local branch and the remote branch. It also incorporates an overview command into info which shows commits over all branches. Change-Id: Iafedd978f44c84d240c010897eff58bbfbd7de71
* | Tidy up code formatting a bit moreDavid Pursehouse2012-11-1410-28/+28
| | | | | | | | | | | | | | | | | | | | | | | | 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 inconsistent indentationDavid Pursehouse2012-11-149-228/+228
|/ | | | | | | | | | The repo coding style is to indent at 2 characters, but there are many places where this is not followed. Enable pylint warning "W0311: Bad indentation" and make sure all indentation is at multiples of 2 characters. Change-Id: I68f0f64470789ce2429ab11104d15d380a63e6a8
* Fix: "Statement seems to have no effect"David Pursehouse2012-11-142-2/+2
| | | | | | | | | | | | Pylint raises an error on the call: print Change it to: print() Change-Id: I507e1b3dd928fa6c32ea7e86260fb3d7b1428e6f
* Change print statements to work in python3Sarah Owens2012-11-1330-288/+310
| | | | | | This is part of a series of changes to introduce Python3 support. Change-Id: I373be5de7141aa127d7debdbce1df39148dbec32
* Convert prompt answers to lower case before checkingDavid Pursehouse2012-11-142-3/+3
| | | | | | | | When prompting for yes/no answers, convert the answer to lower case before comparing. This makes it easier to catch answers like "Yes", "yes", and "YES" with a comparison only for "yes". Change-Id: I06da8281cec81a7438ebb46ddaf3344d12abe1eb
* Minor documentation formatting and grammatical fixesDavid Pursehouse2012-11-141-3/+3
| | | | Change-Id: Iaac6377c787b3bb42242780e9d1116e718e0188d
* Fix documentation reference to local_manifest.xmlDavid Pursehouse2012-11-141-1/+1
| | | | | | | | | Documentation of the remove-project element still refers explicitly to local_manifest.xml. Change it to the more generic "a local manifest". Change-Id: I6278beab99a582fae26a4e053adc110362c714c2
* More code style cleanupDavid Pursehouse2012-11-142-6/+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-142-18/+2
| | | | | | | | | | | | | 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
* Make load order of local manifests deterministicDavid Pursehouse2012-11-142-1/+7
| | | | | | | | | | | Local manifest files stored in the local_manifests folder are loaded in alphabetical order, so it's easier to know in which order project removals/additions/modifications will be applied. If local_manifests.xml exists, it will be loaded before the files in local_manifests. Change-Id: Ia5c0349608f1823b4662cd6b340b99915bd973d5
* Merge "Print an error message when aborted by user"Conley Owens2012-11-121-0/+1
|\
| * Print an error message when aborted by userDavid Pursehouse2012-11-131-0/+1
| | | | | | | | Change-Id: If7378c5deaace0ac6ab2be961e38644d9373557d
* | Merge "Handle manifest parse errors in main"Conley Owens2012-11-121-0/+4
|\|
| * Handle manifest parse errors in mainDavid Pursehouse2012-11-131-0/+4
| | | | | | | | | | | | | | | | Add handling of manifest parse errors in the main method, and print an error. This will prevent python tracebacks being dumped in many cases. Change-Id: I75e73539afa34049f73c993dbfda203f1ad33b45
* | Merge "Better handling of duplicate remotes"Conley Owens2012-11-121-5/+14
|\|
| * Better handling of duplicate remotesDavid Pursehouse2012-11-131-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current implementation, an error is raised if a remote with the same name is defined more than once. The check is only that the remote has the same name as an existing remote. With the support for multiple local manifests, it is more likely than before that the same remote is defined in more than one manifest. Change the check so that it only raises an error if a remote is defined more than once with the same name, but different attributes. Change-Id: Ic3608646cf9f40aa2bea7015d3ecd099c5f5f835
* | Merge "Change usages of xrange() to range()"Conley Owens2012-11-124-4/+4
|\ \ | |/ |/|
| * Change usages of xrange() to range()Sarah Owens2012-11-014-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Print deprecation warning when local_manifest.xml is usedDavid Pursehouse2012-11-132-1/+5
| | | | | | | | | | | | | | | | The preferred way to specify local manifests is to drop the file(s) in the local_manifests folder. Print a deprecation warning when the legacy local_manifest.xml file is used. Change-Id: Ice85bd06fb612d6fcceeaa0755efd130556c4464
* | Add support for multiple local manifestsDavid Pursehouse2012-11-132-7/+26
| | | | | | | | | | | | | | | | | | Add support for multiple local manifests stored in the local_manifests folder under the .repo home directory. Local manifests will be processed in addition to local_manifest.xml. Change-Id: Ia0569cea7e9ae0fe3208a8ffef5d9679e14db03b
* | Handle XML errors when parsing the manifestDavid Pursehouse2012-11-131-1/+5
| | | | | | | | | | | | | | Catch ExpatError and exit gracefully with an error message, rather than exiting with a python traceback. Change-Id: Ifd0a7762aab4e8de63dab8a66117170a05586866
* | Merge "Always show --manifest-server-* options"Conley Owens2012-11-071-6/+6
|\ \
| * | Always show --manifest-server-* optionsConley Owens2012-11-061-6/+6
| |/ | | | | | | | | | | | | | | | | The --manifest-server-* flags broke the smartsync subcmd since the corresponding variables weren't getting set. This change ensures that they will always be set, regardless of whether we are using sync -s or smartsync. Change-Id: I1b642038787f2114fa812ecbc15c64e431bbb829
* / Fix pylint warning W0108: Lambda may not be necessaryDavid Pursehouse2012-11-074-9/+8
|/ | | | | | Remove unnecessary usage of lambda. Change-Id: I06d41933057d60d15d307ee800cca052a44754c6
* Merge "Use python3 urllib when urllib2 not available"Conley Owens2012-11-013-28/+59
|\
| * Use python3 urllib when urllib2 not availableSarah Owens2012-10-313-28/+59
| | | | | | | | | | | | 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
* | | project: Require git >= 1.7.2 for setting config on command lineDave Borowitz2012-10-311-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This option causes the git call to fail, which probably indicates a programming error; callers should check the git version and change the call appropriately if -c is not available. Failing loudly is preferable to failing silently in the general case. For an example of correctly checking at the call site, see I8fd313dd. If callers prefer to fail silently, they may set GIT_CONFIG_PARAMETERS in the environment rather than using the config kwarg to pass configuration. Change-Id: I0de18153d44d3225cd3031e6ead54461430ed334
* | | sync: Only parallelize gc for git >= 1.7.2Dave Borowitz2012-10-311-2/+3
| |/ |/| | | | | | | | | | | | | | | This minimum version is required for the -c argument to set config on the command line. Without this option, git by default uses as many threads per invocation as there are CPUs, so we cannot safely parallelize without hosing a system. Change-Id: I8fd313dd84917658162b5134b2d9aa34a96f2772
* | Even more coding style cleanupDavid Pursehouse2012-10-3012-24/+24
| | | | | | | | | | | | | | | | | | | | | | Fixing some more pylint warnings: W1401: Anomalous backslash in string W0623: Redefining name 'name' from outer scope W0702: No exception type(s) specified E0102: name: function already defined line n Change-Id: I5afcdb4771ce210390a79981937806e30900a93c
* | Merge "Update minimum git version to 1.7.2"Shawn Pearce2012-10-261-2/+2
|\ \
| * | 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
* | | Merge "Revert "Represent git-submodule as nested projects""Shawn O. Pearce2012-10-265-340/+55
|\ \ \
| * | | Revert "Represent git-submodule as nested projects"v1.11.1Shawn O. Pearce2012-10-265-340/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 69998b0c6ff724bf620480140ccce648fec7d6a9. Broke Android's non-gitmodule use case. Conflicts: project.py subcmds/sync.py Change-Id: I68ceeb63d8ee3b939f85a64736bdc81dfa352aed