Files
chromium_depot_tools/git_upstream_diff.py
Mike Frysinger 124bb8e53c switch to 4 space indent
Leave the recipes/ code at 2 space to match the rest of the recipes
project in other repos.

Reformatted using:
files=( $(
	git ls-tree -r --name-only HEAD | \
		grep -Ev -e '^(third_party|recipes)/' | \
		grep '\.py$';
	git grep -l '#!/usr/bin/env.*python' | grep -v '\.py$'
) )
parallel ./yapf -i -- "${files[@]}"
~/chromiumos/chromite/contrib/reflow_overlong_comments "${files[@]}"

The files that still had strings that were too long were manually
reformatted because they were easy and only a few issues.
autoninja.py
clang_format.py
download_from_google_storage.py
fix_encoding.py
gclient_utils.py
git_cache.py
git_common.py
git_map_branches.py
git_reparent_branch.py
gn.py
my_activity.py
owners_finder.py
presubmit_canned_checks.py
reclient_helper.py
reclientreport.py
roll_dep.py
rustfmt.py
siso.py
split_cl.py
subcommand.py
subprocess2.py
swift_format.py
upload_to_google_storage.py

These files still had lines (strings) that were too long, so the pylint
warnings were suppressed with a TODO.
auth.py
gclient.py
gclient_eval.py
gclient_paths.py
gclient_scm.py
gerrit_util.py
git_cl.py
presubmit_canned_checks.py
presubmit_support.py
scm.py

Change-Id: Ia6535c4f2c48d46b589ec1e791dde6c6b2ea858f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4836379
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Auto-Submit: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2023-09-06 05:48:55 +00:00

68 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import argparse
import sys
import subprocess2
import git_common as git
def main(args):
default_args = git.get_config_list('depot-tools.upstream-diff.default-args')
args = default_args + args
current_branch = git.current_branch()
parser = argparse.ArgumentParser()
parser.add_argument('--wordwise',
action='store_true',
default=False,
help=('Print a colorized wordwise diff '
'instead of line-wise diff'))
parser.add_argument('--branch',
default=current_branch,
help='Show changes from a different branch. Passing '
'"HEAD" is the same as omitting this option (it '
'diffs against the current branch)')
opts, extra_args = parser.parse_known_args(args)
if opts.branch == 'HEAD':
opts.branch = current_branch
if not opts.branch or opts.branch == 'HEAD':
print('fatal: Cannot perform git-upstream-diff while not on a branch')
return 1
par = git.upstream(opts.branch)
if not par:
print('fatal: No upstream configured for branch \'%s\'' % opts.branch)
return 1
cmd = [
git.GIT_EXE, '-c', 'core.quotePath=false', 'diff', '--patience', '-C',
'-C'
]
if opts.wordwise:
cmd += ['--word-diff=color', r'--word-diff-regex=(\w+|[^[:space:]])']
cmd += [git.get_or_create_merge_base(opts.branch, par)]
# Only specify the end commit if it is not the current branch, this lets the
# diff include uncommitted changes when diffing the current branch.
if opts.branch != current_branch:
cmd += [opts.branch]
cmd += extra_args
return subprocess2.check_call(cmd)
if __name__ == '__main__':
try:
sys.exit(main(sys.argv[1:]))
except KeyboardInterrupt:
sys.stderr.write('interrupted\n')
sys.exit(1)