Revert [git-llvm] Do not reinvent `@{upstream}`
authorMehdi Amini <joker.eph@gmail.com>
Tue, 10 Sep 2019 01:26:36 +0000 (01:26 +0000)
committerMehdi Amini <joker.eph@gmail.com>
Tue, 10 Sep 2019 01:26:36 +0000 (01:26 +0000)
This reverts r371290 (git commit 7faffd544b16f851a632d6b8f93e3c8485ff34bb)

The change wasnt NFC and broke some users' workflow. Reverting while figuring
out the best alternative to move forward.

llvm-svn: 371480

llvm/utils/git-svn/git-llvm

index e03479a..549a455 100755 (executable)
@@ -190,8 +190,16 @@ def program_exists(cmd):
 
 
 def get_default_rev_range():
+    # Get the branch tracked by the current branch, as set by
+    # git branch --set-upstream-to  See http://serverfault.com/a/352236/38694.
+    cur_branch = git('rev-parse', '--symbolic-full-name', 'HEAD')
+    upstream_branch = git('for-each-ref', '--format=%(upstream:short)',
+                          cur_branch)
+    if not upstream_branch:
+        upstream_branch = 'origin/master'
+
     # Get the newest common ancestor between HEAD and our upstream branch.
-    upstream_rev = git('merge-base', 'HEAD', '@{upstream}')
+    upstream_rev = git('merge-base', 'HEAD', upstream_branch)
     return '%s..' % upstream_rev
 
 
@@ -629,7 +637,9 @@ if __name__ == '__main__':
         metavar='GIT_REVS',
         type=str,
         nargs='?',
-        help="revs to push (default: everything not in the upstream branch).")
+        help="revs to push (default: everything not in the branch's "
+        'upstream, or not in origin/master if the branch lacks '
+        'an explicit upstream)')
     parser_push.set_defaults(func=cmd_push)
 
     parser_revert = subcommands.add_parser(