diff options
Diffstat (limited to 'subcmds/sync.py')
-rw-r--r-- | subcmds/sync.py | 12 |
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 | ||
247 | def _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 | ||
245 | def _PostRepoUpgrade(manifest): | 255 | def _PostRepoUpgrade(manifest): |
246 | for project in manifest.projects.values(): | 256 | for project in manifest.projects.values(): |