diff options
author | David Pursehouse <dpursehouse@collab.net> | 2016-09-14 20:48:24 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-09-14 20:48:24 +0000 |
commit | 01b7d758d563ed3eca38cf8b57b7d71f2b6642a3 (patch) | |
tree | f07830c842070251da6fd94a3759050611fe694a | |
parent | 267ac57361b268e6c3c64390e4803cfee3b85f2f (diff) | |
parent | 2ff302929ca12b309ab35a3f957cd0179f382d74 (diff) | |
download | git-repo-01b7d758d563ed3eca38cf8b57b7d71f2b6642a3.tar.gz |
Merge "When syncing a project with a shared object store, disable automatic pruning."
-rw-r--r-- | subcmds/sync.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py index 9124a653..ecf2ffc0 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py | |||
@@ -397,9 +397,12 @@ later is required to fix a server side protocol bug. | |||
397 | return fetched | 397 | return fetched |
398 | 398 | ||
399 | def _GCProjects(self, projects): | 399 | def _GCProjects(self, projects): |
400 | gitdirs = {} | 400 | gc_gitdirs = {} |
401 | for project in projects: | 401 | for project in projects: |
402 | gitdirs[project.gitdir] = project.bare_git | 402 | if len(project.manifest.GetProjectsWithName(project.name)) > 1: |
403 | print('Shared project %s found, disabling pruning.' % project.name) | ||
404 | project.bare_git.config('--replace-all', 'gc.pruneExpire', 'never') | ||
405 | gc_gitdirs[project.gitdir] = project.bare_git | ||
403 | 406 | ||
404 | has_dash_c = git_require((1, 7, 2)) | 407 | has_dash_c = git_require((1, 7, 2)) |
405 | if multiprocessing and has_dash_c: | 408 | if multiprocessing and has_dash_c: |
@@ -409,7 +412,7 @@ later is required to fix a server side protocol bug. | |||
409 | jobs = min(self.jobs, cpu_count) | 412 | jobs = min(self.jobs, cpu_count) |
410 | 413 | ||
411 | if jobs < 2: | 414 | if jobs < 2: |
412 | for bare_git in gitdirs.values(): | 415 | for bare_git in gc_gitdirs.values(): |
413 | bare_git.gc('--auto') | 416 | bare_git.gc('--auto') |
414 | return | 417 | return |
415 | 418 | ||
@@ -431,7 +434,7 @@ later is required to fix a server side protocol bug. | |||
431 | finally: | 434 | finally: |
432 | sem.release() | 435 | sem.release() |
433 | 436 | ||
434 | for bare_git in gitdirs.values(): | 437 | for bare_git in gc_gitdirs.values(): |
435 | if err_event.isSet(): | 438 | if err_event.isSet(): |
436 | break | 439 | break |
437 | sem.acquire() | 440 | sem.acquire() |