Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: git_upstream_diff.py

Issue 212493002: Make udiff print reasonable errors while not on a branch. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: fix comments Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import argparse 6 import argparse
7 import sys 7 import sys
8 8
9 import subprocess2 9 import subprocess2
10 10
11 from git_common import current_branch, get_or_create_merge_base, config_list 11 import git_common as git
12 from git_common import GIT_EXE
13 12
14 def main(args): 13 def main(args):
15 default_args = config_list('depot-tools.upstream-diff.default-args') 14 default_args = git.config_list('depot-tools.upstream-diff.default-args')
16 args = default_args + args 15 args = default_args + args
17 16
18 parser = argparse.ArgumentParser() 17 parser = argparse.ArgumentParser()
19 parser.add_argument('--wordwise', action='store_true', default=False, 18 parser.add_argument('--wordwise', action='store_true', default=False,
20 help=( 19 help=(
21 'Print a colorized wordwise diff ' 20 'Print a colorized wordwise diff '
22 'instead of line-wise diff')) 21 'instead of line-wise diff'))
23 opts, extra_args = parser.parse_known_args(args) 22 opts, extra_args = parser.parse_known_args(args)
24 23
25 cmd = [GIT_EXE, 'diff', '--patience', '-C', '-C'] 24 cur = git.current_branch()
25 if not cur or cur == 'HEAD':
26 print 'fatal: Cannot perform git-upstream-diff while not on a branch'
27 return 1
28
29 par = git.upstream(cur)
30 if not par:
31 print 'fatal: No upstream configured for branch \'%s\'' % cur
32 return 1
33
34 cmd = [git.GIT_EXE, 'diff', '--patience', '-C', '-C']
26 if opts.wordwise: 35 if opts.wordwise:
27 cmd += ['--word-diff=color', r'--word-diff-regex=(\w+|[^[:space:]])'] 36 cmd += ['--word-diff=color', r'--word-diff-regex=(\w+|[^[:space:]])']
28 cmd += [get_or_create_merge_base(current_branch())] 37 cmd += [git.get_or_create_merge_base(cur, par)]
29 38
30 cmd += extra_args 39 cmd += extra_args
31 40
32 subprocess2.check_call(cmd) 41 subprocess2.check_call(cmd)
33 42
34 43
35 if __name__ == '__main__': 44 if __name__ == '__main__':
36 sys.exit(main(sys.argv[1:])) 45 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698