summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xrepo3
-rw-r--r--subcmds/sync.py11
2 files changed, 10 insertions, 4 deletions
diff --git a/repo b/repo
index f9eb9e8a..acaa9c4c 100755
--- a/repo
+++ b/repo
@@ -27,6 +27,9 @@ VERSION = (1, 23)
27 27
28# increment this if the MAINTAINER_KEYS block is modified 28# increment this if the MAINTAINER_KEYS block is modified
29KEYRING_VERSION = (1, 2) 29KEYRING_VERSION = (1, 2)
30
31# Each individual key entry is created by using:
32# gpg --armor --export keyid
30MAINTAINER_KEYS = """ 33MAINTAINER_KEYS = """
31 34
32 Repo Maintainer <repo@android.kernel.org> 35 Repo Maintainer <repo@android.kernel.org>
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()