summaryrefslogtreecommitdiffstats
path: root/subcmds
Commit message (Collapse)AuthorAgeFilesLines
* 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-101-1/+1
|\ \
| * | Fix "'module' object is not callable" errorDavid Pursehouse2013-06-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Print project name for -p on mirror clientsJorge Gonzalez2013-06-031-1/+6
| | | | | | | | | | | | | | It doesn't make sense to print the relpath, since there's nothing checked out there and the dir shouldn't even exist. Change-Id: Id43631a8e0895929d3a5ad4ca8c2dc9e3d233e70
* | Fix a bug in repo upload --cbrBryan Jacobs2013-06-021-0/+2
|/ | | | | | | repo upload --cbr bailed out if some branches did not have modifications when it is used. Change-Id: I35f264ff7d77bb4bf8f26b4c3faffa184920b6c5
* Send reviews to a different branch from fetchBryan Jacobs2013-05-241-2/+7
| | | | | | | | This adds the ability to have reviews pushed to a different branch from the one on which changes are based. This is useful for "gateway" systems without smartsync. Change-Id: I3a8a0fabcaf6055e62d3fb55f89c944e2f81569f
* Move Python version checking to a separate moduleDavid Pursehouse2013-05-234-23/+20
| | | | | | | | | | | | | | | | | 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>
* Remove unused show_smart option on list and info commandsDavid Pursehouse2013-05-162-2/+2
| | | | Change-Id: Idf0e161a0b0cc23a5a3ee44d18cb797162cfdd7b
* Use reference also for manifest gitVictor Boivie2013-05-121-1/+22
| | | | | | | | | | | | | | | | | When running 'repo init --reference=<mirror>', the mirror will be used for all projects except the manifest project. This is because the _InitGitDir function uses the 'repo.reference' git config value specified in the manifest git, which has no effect when creating the manifest git as that value will be set after the git has been successfully cloned. Information about where the manifest git is located on the server is only known when performing the 'repo init', so that information has to be provided when cloning the git in order for it to set up a proper mapping. Change-Id: I47a2c8b3267a4065965058718ce1def4ecb34d5a Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* stage: replace filter on lambda with list comprehensionDavid Pursehouse2013-05-081-4/+4
| | | | | | | | To fix the pylint warning: W0110: map/filter on lambda could be replaced by comprehension Change-Id: Ib914b42992bb2fbfe888a68fb7b05a7695565b63
* Add regex support for subcommand forallZhiguang Li2013-04-292-13/+13
| | | | | | | | Filter the project list based on regex or wildcard matching of strings, then we can handle subset of all projects. Change-Id: Ib6c23aec79e7d981f7b6a5eb0ae93c44effec467 Signed-off-by: Zhiguang Li <muzili@gmail.com>
* Some fixes for supporting python3Chirayu Desai2013-04-188-25/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix imports. * Use python3 syntax. * Wrap map() calls with list(). * Use list() only wherever needed. (Thanks Conley!) * Fix dictionary iteration methods (s/iteritems/items/). * Make use of sorted() in appropriate places * Use iterators directly in the loop. * Don't use .keys() wherever it isn't needed. * Use sys.maxsize instead of sys.maxint TODO: * Make repo work fully with python3. :) Some of this was done by the '2to3' tool [1], by applying the needed fixes in a way that doesn't break compatibility with python2. Links: [1]: http://docs.python.org/2/library/2to3.html Change-Id: Ibdf3bf9a530d716db905733cb9bfef83a48820f7 Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* sync: be more verboseChirayu Desai2013-04-151-0/+5
| | | | | | | * Print project name if the "quiet" option is not used. Change-Id: I99863bb50f66e4dcbaf2d170bdd05971f2a4e19a Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* list: add name-only and path-only optionsChirayu Desai2013-04-061-1/+18
| | | | | | | | `repo list -n` prints only the name of the projects. `repo list -p` prints only the path of the projects. Change-Id: If7d78eb2651f0b1b2fe555dc286bd2bdcad0d56d Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
* Special handling for manifest group "default"David Holmer2013-04-031-3/+4
| | | | | | | | | | | | | | | | | | | | | 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
* Reload the correct manifest during sync.Tim Kilbourn2013-03-081-2/+9
| | | | | | | Fix for issue #134 https://code.google.com/p/git-repo/issues/detail?id=134 Change-Id: I94c2dea5dd63917e3f9c90cbd628921d7d61b12a
* Merge "Add manifest groups to the output of `info`"David Pursehouse2013-03-081-1/+7
|\
| * Add manifest groups to the output of `info`Conley Owens2013-03-071-1/+7
| | | | | | | | | | | | | | | | List the user's manifest groups when running `repo info`. These groups are passed to `repo init` using the -g/--groups flag. Change-Id: Ie8a4ed74a35b8b90df3b1ee198fe725b1cd68ae7
* | Fix: Missing spaces in printed messagesDavid Pursehouse2013-03-055-7/+7
|/ | | | | | | | | | | | | | | | | | | | | Several messages are printed with the `print` method and the message is split across two lines, i.e.: print('This is a message split' 'across two source code lines') Which causes the message to be printed as: This is a message splitacross two source code lines Add a space at the end of the first line before the line break: print('This is a message split ' 'across two source code lines' Also correct a minor spelling mistake. Change-Id: Ib98d93fcfb98d78f48025fcc428b6661380cff79
* Add --no-tags option to prevent fetching of tagsMitchel Humpherys2013-02-271-3/+9
| | | | | | | Add an option to pass `--no-tags' to `git fetch'. Change-Id: I4158cc369773e08e55a167091c38ca304a197587 Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
* Fix crash in repo info when `%` is used in commit messagesOlof Johansson2013-02-261-1/+1
| | | | | | | Fix for issue #131 http://code.google.com/p/git-repo/issues/detail?id=131 Change-Id: I078533ab5f3a83154c4ad6aa97a5525fc5139d20
* Add missing sys module when referencing stderrConley Owens2013-02-121-2/+2
| | | | | | | `repo cherry-pick` was broken because we were referencing stderr instead of sys.stderr. This should fix it. Change-Id: I67f25c3a0790d029edc65732c319df7c684546c8
* Fix: GitError when using repo info -dOlof Johansson2013-01-291-1/+1
| | | | | | | | | | | | | | | | | | If a workspace is initialised with: repo init -u git://path/to/manifest -b manifest-branch and the default.xml specifies the default revision as `other-branch`, running `repo info -d` results in a GitError: fatal: bad revision 'refs/remotes/m/other-branch..' The repo info command uses the default revision to build the symlink to the remote revision which is passed to the `git rev-list` command. This is incorrect; the manifest's branch name should be used. Change-Id: Ibae5b91869848276785facfaef433e38d49fd726
* 'repo status --orphans' shows non-repo filesWill Richey2013-01-291-0/+72
| | | | | | | | 'repo status --orphans' searches for non-repo objects (not within a project), which is particularly helpful before removing a working tree. Change-Id: I2239c12e6bc0447b0ad71129551cb50fa671961c
* Fix: missing space in information message after repo initDavid Pursehouse2013-01-291-1/+1
| | | | | | | | | | | In the information message displayed after running repo init, there is a missing space: If this is not the directory in which you want to initializerepo Add a space. Change-Id: I20467673ba7481cfe782ba58ff6ed2f7ce9824a5
* Better error message when using --mirror in existing workspaceDavid Pursehouse2013-01-291-2/+4
| | | | | | | | | | | | | | | If repo init is run with the --mirror option, repo checks if there is already a workspace initialized in the current location, and if so, exits with an error message: --mirror not supported on existing client This error can cause confusion; the users do not understand what is wrong and what they need to do to fix it. Change the error message to make it a bit clearer. Change-Id: Ifd06ef64fd264bd1117e4184c49afe0345b75d8c
* Fix: missing spaces in info command outputDavid Pursehouse2013-01-291-3/+3
| | | | | | Text should be joined with " " rather than "" in the output. Change-Id: I6c5dddc15743e98c3b43702cb5d3ec32f81c3221
* 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-191-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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
* 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>
* 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-146-21/+21
| | | | | | | | | | | | 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-142-103/+103
| | | | | | | | | | 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
* Change print statements to work in python3Sarah Owens2012-11-1321-176/+200
| | | | | | 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
* Merge "Change usages of xrange() to range()"Conley Owens2012-11-121-1/+1
|\
| * 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
* | 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
* 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-304-4/+4
| | | | | | | | | | | 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 "Revert "Represent git-submodule as nested projects""Shawn O. Pearce2012-10-261-20/+1
|\
| * Revert "Represent git-submodule as nested projects"v1.11.1Shawn O. Pearce2012-10-261-20/+1
| | | | | | | | | | | | | | | | | | | | | | This reverts commit 69998b0c6ff724bf620480140ccce648fec7d6a9. Broke Android's non-gitmodule use case. Conflicts: project.py subcmds/sync.py Change-Id: I68ceeb63d8ee3b939f85a64736bdc81dfa352aed
* | Merge "repo selfupdate: Fix _PostRepoUpgrade takes 2 arguments"Shawn O. Pearce2012-10-261-3/+3
|\|
| * repo selfupdate: Fix _PostRepoUpgrade takes 2 argumentsShawn O. Pearce2012-10-261-3/+3
| | | | | | | | Change-Id: I1cf9e0674ea366ddce96c949e0bc085e3452b25a
* | Merge "Show user about not initializing repo in current directory"Conley Owens2012-10-261-7/+16
|\ \ | |/ |/|
| * Show user about not initializing repo in current directoryYang Zhenhui2012-10-261-7/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | If the parent of current directory has an initialized repo, for example, if the current directory is '/home/users/harry/platform/ics', and there is an initialized repo in harry's home directory '/home/users/harry/.repo', when user run 'repo init' command, repo is always initialized to parent directory in '/home/users/harry/.repo', but most of time user intends to initialize repo in the current directory, this patch tells user how to do it. Change-Id: Id7a76fb18ec0af243432c29605140d60f3de85ca
* | Update PGP keys during _PostRepoUpgrade in `sync`Conley Owens2012-10-251-2/+6
|/ | | | | | | | 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