git-llvm: Make push --force suppress error on nothing to commit as well

llvm-svn: 369544
This commit is contained in:
Nico Weber 2019-08-21 16:03:34 +00:00
parent f7489141be
commit f3b179589e
1 changed files with 6 additions and 5 deletions
llvm/utils/git-svn

View File

@ -209,11 +209,8 @@ def get_revs_to_push(rev_range):
# Use git show rather than some plumbing command to figure out which revs # Use git show rather than some plumbing command to figure out which revs
# are in rev_range because it handles single revs (HEAD^) and ranges # are in rev_range because it handles single revs (HEAD^) and ranges
# (foo..bar) like we want. # (foo..bar) like we want.
revs = git('show', '--reverse', '--quiet', return git('show', '--reverse', '--quiet',
'--pretty=%h', rev_range).splitlines() '--pretty=%h', rev_range).splitlines()
if not revs:
die('Nothing to push: No revs in range %s.' % rev_range)
return revs
def clean_svn(svn_repo): def clean_svn(svn_repo):
@ -462,6 +459,10 @@ def cmd_push(args):
rev_range = args.rev_range rev_range = args.rev_range
dry_run = args.dry_run dry_run = args.dry_run
revs = get_revs_to_push(rev_range) revs = get_revs_to_push(rev_range)
if not args.force and not revs:
die('Nothing to push: No revs in range %s.' % rev_range)
log('%sPushing %d %s commit%s:\n%s' % log('%sPushing %d %s commit%s:\n%s' %
('[DryRun] ' if dry_run else '', len(revs), ('[DryRun] ' if dry_run else '', len(revs),
'split-repo (%s)' % split_repo_path 'split-repo (%s)' % split_repo_path
@ -471,7 +472,7 @@ def cmd_push(args):
for c in revs))) for c in revs)))
# Ask confirmation if multiple commits are about to be pushed # Ask confirmation if multiple commits are about to be pushed
if not args.force and len(revs) != 1: if not args.force and len(revs) > 1:
if not ask_confirm("Are you sure you want to create %d commits?" % len(revs)): if not ask_confirm("Are you sure you want to create %d commits?" % len(revs)):
die("Aborting") die("Aborting")