summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNico Sallembien <nsallembien@google.com>2009-12-07 15:38:01 -0800
committerNico Sallembien <nsallembien@google.com>2009-12-10 15:24:45 -0800
commit9bb1816bdc2c21811ea6a87ba6eb745bdf3c041c (patch)
treebedfcfbf5bd21c3defccead65a441cbb0e8e8be1
parentc24c720b6135a8f7975bf9af265124eee2d464cb (diff)
downloadgit-repo-1.6.8.8.tar.gz
Fixing project renaming bug.v1.6.8.8
This bug happens when a project gets added to the manifest, and then is renamed. Users who happened to have run "repo sync" after the project was added but before the rename happened will try to read the data from the old project, as the manifest was only updated after all projects were updated successfully.
-rw-r--r--subcmds/sync.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py
index bd07dd9f..ceb81eaa 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -111,7 +111,6 @@ later is required to fix a server side protocol bug.
111 pm = Progress('Fetching projects', len(projects)) 111 pm = Progress('Fetching projects', len(projects))
112 for project in projects: 112 for project in projects:
113 pm.update() 113 pm.update()
114
115 if project.Sync_NetworkHalf(): 114 if project.Sync_NetworkHalf():
116 fetched.add(project.gitdir) 115 fetched.add(project.gitdir)
117 else: 116 else:
@@ -192,6 +191,15 @@ uncommitted changes are present' % project.relpath
192 if opt.repo_upgraded: 191 if opt.repo_upgraded:
193 _PostRepoUpgrade(self.manifest) 192 _PostRepoUpgrade(self.manifest)
194 193
194 if not opt.local_only:
195 mp.Sync_NetworkHalf()
196
197 if mp.HasChanges:
198 syncbuf = SyncBuffer(mp.config)
199 mp.Sync_LocalHalf(syncbuf)
200 if not syncbuf.Finish():
201 sys.exit(1)
202 self.manifest._Unload()
195 all = self.GetProjects(args, missing_ok=True) 203 all = self.GetProjects(args, missing_ok=True)
196 204
197 if not opt.local_only: 205 if not opt.local_only:
@@ -199,7 +207,6 @@ uncommitted changes are present' % project.relpath
199 now = time.time() 207 now = time.time()
200 if (24 * 60 * 60) <= (now - rp.LastFetch): 208 if (24 * 60 * 60) <= (now - rp.LastFetch):
201 to_fetch.append(rp) 209 to_fetch.append(rp)
202 to_fetch.append(mp)
203 to_fetch.extend(all) 210 to_fetch.extend(all)
204 211
205 fetched = self._Fetch(to_fetch) 212 fetched = self._Fetch(to_fetch)
@@ -208,12 +215,6 @@ uncommitted changes are present' % project.relpath
208 # bail out now; the rest touches the working tree 215 # bail out now; the rest touches the working tree
209 return 216 return
210 217
211 if mp.HasChanges:
212 syncbuf = SyncBuffer(mp.config)
213 mp.Sync_LocalHalf(syncbuf)
214 if not syncbuf.Finish():
215 sys.exit(1)
216
217 self.manifest._Unload() 218 self.manifest._Unload()
218 all = self.GetProjects(args, missing_ok=True) 219 all = self.GetProjects(args, missing_ok=True)
219 missing = [] 220 missing = []
@@ -241,7 +242,6 @@ uncommitted changes are present' % project.relpath
241 if not syncbuf.Finish(): 242 if not syncbuf.Finish():
242 sys.exit(1) 243 sys.exit(1)
243 244
244
245def _PostRepoUpgrade(manifest): 245def _PostRepoUpgrade(manifest):
246 for project in manifest.projects.values(): 246 for project in manifest.projects.values():
247 if project.Exists: 247 if project.Exists: