- 17 Aug, 2015 1 commit
-
-
Dan Willemsen authored
This argument wasn't being copied, which caused syncs from generated manifests to pull down too much of the git history. Change-Id: I269bab788d4557267c081628b3f8c6aec7744e81
-
- 12 Aug, 2015 2 commits
-
-
Dan Willemsen authored
-
Simran Basi authored
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
-
- 05 Aug, 2015 2 commits
-
-
Dan Willemsen authored
-
David Pursehouse authored
-
- 03 Aug, 2015 1 commit
-
-
Dan Willemsen authored
The existing code here makes sure that switching clone-depth from on to off actually causes the history to be fully restored. Unfortunately, it does this by fetching the full history every time the fetch spec changes. Switching between two clone-depth="1" branches will fetch far more than the top commit. Instead, when not using clone-depth, pass --depth=2147483647 to git fetch so that it ensures that we have the entire history. That is slightly less efficient, so limit it to only when there are shallow objects in the project by checking for the existance of the 'shallow' file. Change-Id: Iee0cfc9c6992c208344b1d9123769992412db67b
-
- 31 Jul, 2015 5 commits
-
-
Simon Ruggier authored
Change-Id: If4227d02005fddea82d9e698a373222100d8f710
-
Dan Willemsen authored
-
Conley Owens authored
-
Dan Sandler authored
Previously repo would only print the failing project path if Sync_NetworkHalf returned false/empty, but if it threw an exception the print() was never called. Change-Id: I58c41de43930df5e34b21561c205e062a72e290f
-
Dan Willemsen authored
This fixes these errors: ... File ".repo/repo/project.py", line 2371, in _ReferenceGitDir os.symlink(os.path.relpath(src, os.path.dirname(dst)), dst) OSError: [Errno 17] File exists Which was happening for checkouts that were created before v1.12.8, when project-objects was created. Nothing had yet been forcing these checkouts to use project-objects, until the recent verification changes. In this OSError case, we already created the symlink, so src == dst, and the directory did not exist. This caused us to run os.makedirs the os.symlink on the same file. dst really should be the file in gitdir, not the target of that symlink if it exists. So just use realpath for the dotgit portion of the path. Change-Id: Iff5396a2093de91029c42cf38aa57131fd22981c
-
- 30 Jul, 2015 1 commit
-
-
Graham Christensen authored
Enable operating against groups of repositories. As it stands, it isn't compatible with `-r/--regex`. `repo forall -g groupname -c pwd` will run `pwd` for all projects in groupname. `repo forall -g thisgroup,-butnotthisone -c pwd` will run `pwd` for all projects in `thisgroup` but not `butnotthisone`. `repo list -g groupname -n` will list all the names of repos in `groupname`. Change-Id: Ia75c50ce52541d1c8cea2874b20a4db2e0e54960
-
- 29 Jul, 2015 3 commits
-
-
Kevin Degi authored
In some cases, a user may wish to continue with a sync even though it would require overwriting an existing git directory. This behavior is not safe as a default because it could result in the loss of some user data, but as an optional flag it allows the user more flexibility. To support this, add a --force-sync flag to the sync command that will attempt to overwrite the existing git dir if it is specified and the existing git dir points to the wrong obj dir. Change-Id: Ieddda8ad54e264a1eb4a9d54881dd6ebc8a03833
-
Conley Owens authored
-
David Pursehouse authored
-
- 27 Jul, 2015 2 commits
-
-
Cassidy Burden authored
repo info will crash when using a manifest with no default element despite default being an optional element. Output nothing for "Manifest Branch" if no default element exists (or if no default revision exists). Change-Id: I7ebffa2408863837ba980f0ab6e593134400aea9
-
Kevin Degi authored
If _InitGitDir fails, it leaves any progress it had made on the file system. This can cause subsequent calls to repo sync to behave differently. This is especially evident when _CheckDirReference() fails, since it will not be invoked when sync is retried because both the source and destination directories already exist. To address this, have _InitGitDir() clean up any directories it has created if it catches an exception. Also behave the same way for _InitWorkTree(). Change-Id: Ic16bb3feea649e115b59bd44be294e89e3692aeb
-
- 20 Jul, 2015 1 commit
-
-
David Pursehouse authored
For some users it is not desirable to remove refs that don't exist on the remote server when syncing a mirror repo. This reverts commit b4d43b9f. Change-Id: Ie849b66682138ef88da6cd1a5fbb27e993197dd7
-
- 15 Jul, 2015 3 commits
-
-
Conley Owens authored
-
Conley Owens authored
-
Kevin Degi authored
The fetch logic for the case where depth is set and revision is a SHA1 has several failure modes that are not handled well by the current logic. 1) 'git fetch <SHA1>' requires git version >= 1.8.3 2) 'git fetch <SHA1>' can be prevented by a configuration option on the server. 3) 'git fetch --depth=<N> <refspec>' can fail to contain a SHA1 specified by the manifest. Each of these cases cause infinite recursion when _RemoteFetch() tries to call itself with current_branch_only=False because current_branch_only is set to True when depth != None. To try to prevent the infinite recursion, we set self.clone_depth to None before the first retry of _RemoteFetch(). This will allow the Fetch to eventually succeed in the case where clone-depth is specified in the manifest. A user specified depth from the init command will still recurse infinitely. In addition, never try to fetch a SHA1 directly if the git version being used is not at least 1.8.3. Change-Id: I802fc17878c0929cfd63fff611633c1d3b54ecd3
-
- 13 Jul, 2015 1 commit
-
-
Conley Owens authored
-
- 11 Jul, 2015 1 commit
-
-
David Pursehouse authored
* changes: forall: use smart sync override manifest if it exists sync: Remove smart sync override manifest when not in smart sync mode forall: Don't try to get lrev of projects in mirror workspace sync: Improve error message when writing smart sync manifest fails
-
- 10 Jul, 2015 2 commits
-
-
Conley Owens authored
-
Conley Owens authored
Previously, in running the `manifest` command, we wouldn't output the upstream if the default upstream would include the pinned sha1. However, now that fetching refs/heads/* doesn't guarantee that we will have the sha1, we need to always output the specified upstream branch. Change-Id: Ib8b409a8ecd439397b38ee9649c530407797f841
-
- 06 Jul, 2015 4 commits
-
-
David Pursehouse authored
If a workspace is synced with the -s or -t option, the included projects may be different to those in the original manifest. However, when using the forall command, the list of the projects from the original manifest is used. If the smart sync manifest file exists, use it to override the original manifest. Change-Id: Iaefcbe148d2158ac046f158d98bbd8b5a5378ce7
-
David Pursehouse authored
When syncing with the -s or -t option, a smart_sync_override.xml file is created. This file is left in the file system when syncing again without the -s or -t option. Remove the smart sync override manifest, if it exists, when not using the -s or -t option. Change-Id: I697a0f6405205ba5f84a4d470becf7cd23c07b4b
-
David Pursehouse authored
git rev-parse fails for projects that don't have an explicit revision specified, and don't have a branch of the same name as the default revision. This can be the case in a workspace synced with the smart sync (-s) or smart tag (-t) option. Change-Id: I19bfe9fe7396170379415d85f10f6440dc6ea08f
-
David Pursehouse authored
The error message only states that writing the manifest failed. Include the exception message, so it's easier to track down the reason that the write failed. Change-Id: I06e942c48a19521ba45292199519dd0a8bdb1de7
-
- 25 Jun, 2015 1 commit
-
-
David Pursehouse authored
-
- 22 Jun, 2015 1 commit
-
-
Than McIntosh authored
After performing the actual cherry-pick operation, the code in cherry_pick.py opens a pipe to 'git commit -F' to rewrite the commit message, emits the fixed-up commit msg to the pipe, then waits for 'git commit' to complete. The child 'git' process winds up hanging while reading from the pipe, however, since the parent process still has it open. To fix the hang, change the parent process to close its end of the pipe after it has emitted the message. Change-Id: I5929371e69a5b076f09009d00d40a2c72ac8ac33
-
- 19 Jun, 2015 1 commit
-
-
Jarkko Pöyry authored
Change-Id: Iaf5c2a0f00667dc09bcf455cfe2f39bfbaa2bfc0
-
- 09 Jun, 2015 1 commit
-
-
David Pursehouse authored
-
- 04 Jun, 2015 4 commits
-
-
Anthony King authored
Change-Id: I655e3043d0118c4e929897d3a51e5e013e5758dc
-
Anthony King authored
it's actually urllib.parse.urlparse Change-Id: Ie3532e54625e887c8682d92b932ea21a629e8d60
-
Anthony King authored
Change-Id: I35ca2b3733e6d1508669f9a6690c6645c582912e
-
Anthony King authored
Change-Id: I09c47024ef54c360ea3c15c5d4f169e13444e412
-
- 03 Jun, 2015 3 commits
-
-
Anthony King authored
strings no longer need decoding, since unicode is str Change-Id: I9516d298fee7ddc058452394b7759327fe3aa7a8
-
Anthony King authored
output from a process is in bytes in python3. we need to decode it. in Python3, bytes don't have an encode attribute. use this to identify it. Change-Id: I152f2ec34614131027db680ead98b53f9b321ed5
-
Wink Saville authored
This allows a project to use globs in the linkfile src attribute. When a glob is used in the src the dest field must be a directory. Then _LinkFile._Link(self) calls will create symbolic links in the dest directory to all of the entries in the src as defined by the glob specification. Below all of the entries in master-configs/ will have symbolic links in <root dir>/configs directory: <project name="helloworld.git" path="apps/helloworld"> <linkfile src="master-configs/*" dest="configs"/> </project> Change-Id: Idfed8fa47c83d2ca6e2b8e867731b8e2f9e2eb47
-