summaryrefslogtreecommitdiffstats
path: root/subcmds/sync.py
diff options
context:
space:
mode:
Diffstat (limited to 'subcmds/sync.py')
-rw-r--r--subcmds/sync.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py
index bd07dd9f..5fc834d0 100644
--- a/subcmds/sync.py
+++ b/subcmds/sync.py
@@ -118,6 +118,8 @@ later is required to fix a server side protocol bug.
118 print >>sys.stderr, 'error: Cannot fetch %s' % project.name 118 print >>sys.stderr, 'error: Cannot fetch %s' % project.name
119 sys.exit(1) 119 sys.exit(1)
120 pm.end() 120 pm.end()
121 for project in projects:
122 project.bare_git.gc('--auto')
121 return fetched 123 return fetched
122 124
123 def UpdateProjectList(self): 125 def UpdateProjectList(self):
@@ -213,8 +215,9 @@ uncommitted changes are present' % project.relpath
213 mp.Sync_LocalHalf(syncbuf) 215 mp.Sync_LocalHalf(syncbuf)
214 if not syncbuf.Finish(): 216 if not syncbuf.Finish():
215 sys.exit(1) 217 sys.exit(1)
218 _ReloadManifest(self)
219 mp = self.manifest.manifestProject
216 220
217 self.manifest._Unload()
218 all = self.GetProjects(args, missing_ok=True) 221 all = self.GetProjects(args, missing_ok=True)
219 missing = [] 222 missing = []
220 for project in all: 223 for project in all:
@@ -241,6 +244,13 @@ uncommitted changes are present' % project.relpath
241 if not syncbuf.Finish(): 244 if not syncbuf.Finish():
242 sys.exit(1) 245 sys.exit(1)
243 246
247def _ReloadManifest(cmd):
248 old = cmd.manifest
249 new = cmd.GetManifest(reparse=True)
250
251 if old.__class__ != new.__class__:
252 print >>sys.stderr, 'NOTICE: manifest format has changed ***'
253 new.Upgrade_Local(old)
244 254
245def _PostRepoUpgrade(manifest): 255def _PostRepoUpgrade(manifest):
246 for project in manifest.projects.values(): 256 for project in manifest.projects.values():