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() |
