Index: git_upstream_diff.py |
diff --git a/git_upstream_diff.py b/git_upstream_diff.py |
index c7fe1f3449cad367d2d629ed24237bb99589dc2a..9d9db95fd5d64bb1703f15dd38aa6c9270565370 100755 |
--- a/git_upstream_diff.py |
+++ b/git_upstream_diff.py |
@@ -8,11 +8,10 @@ import sys |
import subprocess2 |
-from git_common import current_branch, get_or_create_merge_base, config_list |
-from git_common import GIT_EXE |
+import git_common as git |
def main(args): |
- default_args = config_list('depot-tools.upstream-diff.default-args') |
+ default_args = git.config_list('depot-tools.upstream-diff.default-args') |
args = default_args + args |
parser = argparse.ArgumentParser() |
@@ -22,10 +21,20 @@ def main(args): |
'instead of line-wise diff')) |
opts, extra_args = parser.parse_known_args(args) |
- cmd = [GIT_EXE, 'diff', '--patience', '-C', '-C'] |
+ cur = git.current_branch() |
+ if not cur or cur == 'HEAD': |
+ print 'fatal: Cannot perform git-upstream-diff while not on a branch' |
+ return 1 |
+ |
+ par = git.upstream(cur) |
+ if not par: |
+ print 'fatal: No upstream configured for branch \'%s\'' % cur |
+ return 1 |
+ |
+ cmd = [git.GIT_EXE, 'diff', '--patience', '-C', '-C'] |
if opts.wordwise: |
cmd += ['--word-diff=color', r'--word-diff-regex=(\w+|[^[:space:]])'] |
- cmd += [get_or_create_merge_base(current_branch())] |
+ cmd += [git.get_or_create_merge_base(cur, par)] |
cmd += extra_args |