diff options
Diffstat (limited to 'subcmds/upload.py')
-rw-r--r-- | subcmds/upload.py | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/subcmds/upload.py b/subcmds/upload.py index c48deab6..ef3d8e9d 100644 --- a/subcmds/upload.py +++ b/subcmds/upload.py | |||
@@ -226,7 +226,8 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
226 | 226 | ||
227 | destination = opt.dest_branch or project.dest_branch or project.revisionExpr | 227 | destination = opt.dest_branch or project.dest_branch or project.revisionExpr |
228 | print('Upload project %s/ to remote branch %s%s:' % | 228 | print('Upload project %s/ to remote branch %s%s:' % |
229 | (project.relpath, destination, ' (private)' if opt.private else '')) | 229 | (project.RelPath(local=opt.this_manifest_only), destination, |
230 | ' (private)' if opt.private else '')) | ||
230 | print(' branch %s (%2d commit%s, %s):' % ( | 231 | print(' branch %s (%2d commit%s, %s):' % ( |
231 | name, | 232 | name, |
232 | len(commit_list), | 233 | len(commit_list), |
@@ -262,7 +263,7 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
262 | script.append('# Uncomment the branches to upload:') | 263 | script.append('# Uncomment the branches to upload:') |
263 | for project, avail in pending: | 264 | for project, avail in pending: |
264 | script.append('#') | 265 | script.append('#') |
265 | script.append('# project %s/:' % project.relpath) | 266 | script.append('# project %s/:' % project.RelPath(local=opt.this_manifest_only)) |
266 | 267 | ||
267 | b = {} | 268 | b = {} |
268 | for branch in avail: | 269 | for branch in avail: |
@@ -285,7 +286,7 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
285 | script.append('# %s' % commit) | 286 | script.append('# %s' % commit) |
286 | b[name] = branch | 287 | b[name] = branch |
287 | 288 | ||
288 | projects[project.relpath] = project | 289 | projects[project.RelPath(local=opt.this_manifest_only)] = project |
289 | branches[project.name] = b | 290 | branches[project.name] = b |
290 | script.append('') | 291 | script.append('') |
291 | 292 | ||
@@ -313,7 +314,7 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
313 | _die('project for branch %s not in script', name) | 314 | _die('project for branch %s not in script', name) |
314 | branch = branches[project.name].get(name) | 315 | branch = branches[project.name].get(name) |
315 | if not branch: | 316 | if not branch: |
316 | _die('branch %s not in %s', name, project.relpath) | 317 | _die('branch %s not in %s', name, project.RelPath(local=opt.this_manifest_only)) |
317 | todo.append(branch) | 318 | todo.append(branch) |
318 | if not todo: | 319 | if not todo: |
319 | _die("nothing uncommented for upload") | 320 | _die("nothing uncommented for upload") |
@@ -481,7 +482,7 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
481 | else: | 482 | else: |
482 | fmt = '\n (%s)' | 483 | fmt = '\n (%s)' |
483 | print(('[FAILED] %-15s %-15s' + fmt) % ( | 484 | print(('[FAILED] %-15s %-15s' + fmt) % ( |
484 | branch.project.relpath + '/', | 485 | branch.project.RelPath(local=opt.this_manifest_only) + '/', |
485 | branch.name, | 486 | branch.name, |
486 | str(branch.error)), | 487 | str(branch.error)), |
487 | file=sys.stderr) | 488 | file=sys.stderr) |
@@ -490,7 +491,7 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
490 | for branch in todo: | 491 | for branch in todo: |
491 | if branch.uploaded: | 492 | if branch.uploaded: |
492 | print('[OK ] %-15s %s' % ( | 493 | print('[OK ] %-15s %s' % ( |
493 | branch.project.relpath + '/', | 494 | branch.project.RelPath(local=opt.this_manifest_only) + '/', |
494 | branch.name), | 495 | branch.name), |
495 | file=sys.stderr) | 496 | file=sys.stderr) |
496 | 497 | ||
@@ -524,7 +525,7 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
524 | return (project, avail) | 525 | return (project, avail) |
525 | 526 | ||
526 | def Execute(self, opt, args): | 527 | def Execute(self, opt, args): |
527 | projects = self.GetProjects(args) | 528 | projects = self.GetProjects(args, all_manifests=not opt.this_manifest_only) |
528 | 529 | ||
529 | def _ProcessResults(_pool, _out, results): | 530 | def _ProcessResults(_pool, _out, results): |
530 | pending = [] | 531 | pending = [] |
@@ -534,7 +535,8 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
534 | print('repo: error: %s: Unable to upload branch "%s". ' | 535 | print('repo: error: %s: Unable to upload branch "%s". ' |
535 | 'You might be able to fix the branch by running:\n' | 536 | 'You might be able to fix the branch by running:\n' |
536 | ' git branch --set-upstream-to m/%s' % | 537 | ' git branch --set-upstream-to m/%s' % |
537 | (project.relpath, project.CurrentBranch, self.manifest.branch), | 538 | (project.RelPath(local=opt.this_manifest_only), project.CurrentBranch, |
539 | project.manifest.branch), | ||
538 | file=sys.stderr) | 540 | file=sys.stderr) |
539 | elif avail: | 541 | elif avail: |
540 | pending.append(result) | 542 | pending.append(result) |
@@ -554,15 +556,23 @@ Gerrit Code Review: https://www.gerritcodereview.com/ | |||
554 | (opt.branch,), file=sys.stderr) | 556 | (opt.branch,), file=sys.stderr) |
555 | return 1 | 557 | return 1 |
556 | 558 | ||
557 | pending_proj_names = [project.name for (project, available) in pending] | 559 | manifests = {project.manifest.topdir: project.manifest |
558 | pending_worktrees = [project.worktree for (project, available) in pending] | 560 | for (project, available) in pending} |
559 | hook = RepoHook.FromSubcmd( | 561 | ret = 0 |
560 | hook_type='pre-upload', manifest=self.manifest, | 562 | for manifest in manifests.values(): |
561 | opt=opt, abort_if_user_denies=True) | 563 | pending_proj_names = [project.name for (project, available) in pending |
562 | if not hook.Run( | 564 | if project.manifest.topdir == manifest.topdir] |
563 | project_list=pending_proj_names, | 565 | pending_worktrees = [project.worktree for (project, available) in pending |
564 | worktree_list=pending_worktrees): | 566 | if project.manifest.topdir == manifest.topdir] |
565 | return 1 | 567 | hook = RepoHook.FromSubcmd( |
568 | hook_type='pre-upload', manifest=manifest, | ||
569 | opt=opt, abort_if_user_denies=True) | ||
570 | if not hook.Run( | ||
571 | project_list=pending_proj_names, | ||
572 | worktree_list=pending_worktrees): | ||
573 | ret = 1 | ||
574 | if ret: | ||
575 | return ret | ||
566 | 576 | ||
567 | reviewers = _SplitEmails(opt.reviewers) if opt.reviewers else [] | 577 | reviewers = _SplitEmails(opt.reviewers) if opt.reviewers else [] |
568 | cc = _SplitEmails(opt.cc) if opt.cc else [] | 578 | cc = _SplitEmails(opt.cc) if opt.cc else [] |