diff options
author | Dan Willemsen <dwillemsen@google.com> | 2016-04-05 17:22:02 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2016-04-05 17:44:09 -0700 |
commit | bdb866ea7630b1aecad0ddc7d72939e67ff39816 (patch) | |
tree | 73dd76e6cc3753783e95c5de50e08d4a27485996 /project.py | |
parent | e121ad558dac2268bba4eb37528ec5a6a2aa507d (diff) | |
download | git-repo-bdb866ea7630b1aecad0ddc7d72939e67ff39816.tar.gz |
Fix symlinking of new projects
We weren't copying these lists, so the += was actually changing the
underlying lists.
When a new project was added to the manifest, we run _CheckDirReference
against the manifest project with share_refs=True, which added the
working_tree_* to the shareable_* lists. Then, when we load the new
manifest and create the new project, it uses the lists that already
contain the working_tree_* files, even though we passed
share_refs=False.
This happens reliably under the above conditions, but doesn't seem to
happen when syncing a fresh tree. So we've got a mixture of links that
may need to be cleaned up later. This patch will just stop it from
happening in the future.
Change-Id: Ib7935bfad78af1e494a75e55134ec829f13c2a41
Diffstat (limited to 'project.py')
-rw-r--r-- | project.py | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -2315,8 +2315,8 @@ class Project(object): | |||
2315 | self.bare_git.symbolic_ref('-m', msg, ref, dst) | 2315 | self.bare_git.symbolic_ref('-m', msg, ref, dst) |
2316 | 2316 | ||
2317 | def _CheckDirReference(self, srcdir, destdir, share_refs): | 2317 | def _CheckDirReference(self, srcdir, destdir, share_refs): |
2318 | symlink_files = self.shareable_files | 2318 | symlink_files = self.shareable_files[:] |
2319 | symlink_dirs = self.shareable_dirs | 2319 | symlink_dirs = self.shareable_dirs[:] |
2320 | if share_refs: | 2320 | if share_refs: |
2321 | symlink_files += self.working_tree_files | 2321 | symlink_files += self.working_tree_files |
2322 | symlink_dirs += self.working_tree_dirs | 2322 | symlink_dirs += self.working_tree_dirs |
@@ -2344,8 +2344,8 @@ class Project(object): | |||
2344 | copy_all: If true, copy all remaining files from |gitdir| -> |dotgit|. | 2344 | copy_all: If true, copy all remaining files from |gitdir| -> |dotgit|. |
2345 | This saves you the effort of initializing |dotgit| yourself. | 2345 | This saves you the effort of initializing |dotgit| yourself. |
2346 | """ | 2346 | """ |
2347 | symlink_files = self.shareable_files | 2347 | symlink_files = self.shareable_files[:] |
2348 | symlink_dirs = self.shareable_dirs | 2348 | symlink_dirs = self.shareable_dirs[:] |
2349 | if share_refs: | 2349 | if share_refs: |
2350 | symlink_files += self.working_tree_files | 2350 | symlink_files += self.working_tree_files |
2351 | symlink_dirs += self.working_tree_dirs | 2351 | symlink_dirs += self.working_tree_dirs |