summaryrefslogtreecommitdiffstats
path: root/subcmds
diff options
context:
space:
mode:
Diffstat (limited to 'subcmds')
-rw-r--r--subcmds/start.py3
-rw-r--r--subcmds/sync.py11
-rw-r--r--subcmds/upload.py10
3 files changed, 14 insertions, 10 deletions
diff --git a/subcmds/start.py b/subcmds/start.py
index d1430a9d..290b6897 100644
--- a/subcmds/start.py
+++ b/subcmds/start.py
@@ -54,8 +54,7 @@ revision specified in the manifest.
54 if not opt.all: 54 if not opt.all:
55 projects = args[1:] 55 projects = args[1:]
56 if len(projects) < 1: 56 if len(projects) < 1:
57 print("error: at least one project must be specified", file=sys.stderr) 57 projects = ['.',] # start it in the local project by default
58 sys.exit(1)
59 58
60 all_projects = self.GetProjects(projects, 59 all_projects = self.GetProjects(projects,
61 missing_ok=bool(self.gitc_manifest)) 60 missing_ok=bool(self.gitc_manifest))
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()
diff --git a/subcmds/upload.py b/subcmds/upload.py
index 4b05f1e8..1172dadc 100644
--- a/subcmds/upload.py
+++ b/subcmds/upload.py
@@ -454,7 +454,11 @@ Gerrit Code Review: http://code.google.com/p/gerrit/
454 if avail: 454 if avail:
455 pending.append((project, avail)) 455 pending.append((project, avail))
456 456
457 if pending and (not opt.bypass_hooks): 457 if not pending:
458 print("no branches ready for upload", file=sys.stderr)
459 return
460
461 if not opt.bypass_hooks:
458 hook = RepoHook('pre-upload', self.manifest.repo_hooks_project, 462 hook = RepoHook('pre-upload', self.manifest.repo_hooks_project,
459 self.manifest.topdir, 463 self.manifest.topdir,
460 self.manifest.manifestProject.GetRemote('origin').url, 464 self.manifest.manifestProject.GetRemote('origin').url,
@@ -474,9 +478,7 @@ Gerrit Code Review: http://code.google.com/p/gerrit/
474 cc = _SplitEmails(opt.cc) 478 cc = _SplitEmails(opt.cc)
475 people = (reviewers, cc) 479 people = (reviewers, cc)
476 480
477 if not pending: 481 if len(pending) == 1 and len(pending[0][1]) == 1:
478 print("no branches ready for upload", file=sys.stderr)
479 elif len(pending) == 1 and len(pending[0][1]) == 1:
480 self._SingleBranch(opt, pending[0][1][0], people) 482 self._SingleBranch(opt, pending[0][1][0], people)
481 else: 483 else:
482 self._MultipleBranches(opt, pending, people) 484 self._MultipleBranches(opt, pending, people)