mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
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>
70 lines
2.1 KiB
Python
Executable File
70 lines
2.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# Copyright 2015 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.
|
|
"""Usage: %prog <commit>*
|
|
|
|
Given a commit, finds the release where it first appeared (e.g. 47.0.2500.0) as
|
|
well as attempting to determine the branches to which it was merged.
|
|
|
|
Note that it uses the "cherry picked from" annotation to find merges, so it will
|
|
only work on merges that followed the "use cherry-pick -x" instructions.
|
|
"""
|
|
|
|
import optparse
|
|
import re
|
|
import sys
|
|
|
|
import git_common as git
|
|
|
|
|
|
def GetNameForCommit(sha1):
|
|
name = re.sub(r'~.*$', '', git.run('name-rev', '--tags', '--name-only',
|
|
sha1))
|
|
if name == 'undefined':
|
|
name = git.run('name-rev', '--refs', 'remotes/branch-heads/*',
|
|
'--name-only', sha1) + ' [untagged]'
|
|
return name
|
|
|
|
|
|
def GetMergesForCommit(sha1):
|
|
return [
|
|
c.split()[0]
|
|
for c in git.run('log', '--oneline', '-F', '--all', '--no-abbrev',
|
|
'--grep', 'cherry picked from commit %s' %
|
|
sha1).splitlines()
|
|
]
|
|
|
|
|
|
def main(args):
|
|
parser = optparse.OptionParser(usage=sys.modules[__name__].__doc__)
|
|
_, args = parser.parse_args(args)
|
|
|
|
if len(args) == 0:
|
|
parser.error('Need at least one commit.')
|
|
|
|
for arg in args:
|
|
commit_name = GetNameForCommit(arg)
|
|
if not commit_name:
|
|
print('%s not found' % arg)
|
|
return 1
|
|
print('commit %s was:' % arg)
|
|
print(' initially in ' + commit_name)
|
|
merges = GetMergesForCommit(arg)
|
|
for merge in merges:
|
|
print(' merged to ' + GetNameForCommit(merge) + ' (as ' + merge +
|
|
')')
|
|
if not merges:
|
|
print('No merges found. If this seems wrong, be sure that you did:')
|
|
print(' git fetch origin && gclient sync --with_branch_heads')
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == '__main__':
|
|
try:
|
|
sys.exit(main(sys.argv[1:]))
|
|
except KeyboardInterrupt:
|
|
sys.stderr.write('interrupted\n')
|
|
sys.exit(1)
|