Go to file
David James 8d20116038 repo: Support multiple branches for the same project.
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
2013-10-14 15:34:32 -07:00
docs Send reviews to a different branch from fetch 2013-05-24 12:17:22 -04:00
hooks Update the commit-msg hook to the version from Gerrit 2.5.2 2013-02-13 09:56:09 +09:00
subcmds repo: Support multiple branches for the same project. 2013-10-14 15:34:32 -07:00
tests Fix inconsistent indentation 2012-11-14 11:38:57 +09:00
.gitattributes Protect line endings in shell scripts 2013-02-11 22:13:39 +01:00
.gitignore Add repoc to the .gitignore file 2013-03-08 01:18:08 +00:00
.project Set correct name in PyDev and Eclipse project config 2013-04-19 09:35:43 +09:00
.pydevproject Set correct name in PyDev and Eclipse project config 2013-04-19 09:35:43 +09:00
.pylintrc Disable warning about locally disabling pylint warnings 2013-05-15 18:06:06 +09:00
color.py Add nofmt_printer to color.py 2013-02-26 16:04:55 +09:00
command.py repo: Support multiple branches for the same project. 2013-10-14 15:34:32 -07:00
COPYING Initial Contribution 2008-10-21 07:00:00 -07:00
editor.py Change print statements to work in python3 2012-11-13 17:33:56 -08:00
error.py Raise a NoManifestException when the manifest DNE 2012-11-15 18:50:11 -08:00
git_command.py Change print statements to work in python3 2012-11-13 17:33:56 -08:00
git_config.py Assume http upload if ssh_info cannot be parsed 2013-09-27 19:15:34 +09:00
git_refs.py Some fixes for supporting python3 2013-04-18 21:35:49 +05:30
git_ssh Don't allow git fetch to start ControlMaster 2010-10-29 08:15:14 -07:00
main.py Move Python version checking to a separate module 2013-05-23 07:28:53 +00:00
manifest_xml.py repo: Support multiple branches for the same project. 2013-10-14 15:34:32 -07:00
pager.py Change print statements to work in python3 2012-11-13 17:33:56 -08:00
progress.py Support units in progress messages 2011-09-19 14:52:57 -07:00
project.py repo: Support multiple branches for the same project. 2013-10-14 15:34:32 -07:00
pyversion.py Move Python version checking to a separate module 2013-05-23 07:28:53 +00:00
repo Do not use print_function from __future__ 2013-09-27 09:32:02 +09:00
SUBMITTING_PATCHES Add pylint configuration and instructions 2012-10-24 10:18:13 +09:00
trace.py Change print statements to work in python3 2012-11-13 17:33:56 -08:00