mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
Tbr: iannucci@chromium.org Bug: 984182 Change-Id: If36722e190d305f89d63dce91d0a600ddc34ebe3 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1748589 Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
56 lines
1.6 KiB
Python
Executable File
56 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env vpython
|
|
# 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.
|
|
|
|
"""Rename the current branch while maintaining correct dependencies."""
|
|
|
|
import argparse
|
|
import sys
|
|
|
|
import subprocess2
|
|
|
|
from git_common import current_branch, run, set_branch_config, branch_config
|
|
from git_common import branch_config_map
|
|
|
|
def main(args):
|
|
current = current_branch()
|
|
if current == 'HEAD':
|
|
current = None
|
|
old_name_help = 'The old branch to rename.'
|
|
if current:
|
|
old_name_help += ' (default %(default)r)'
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('old_name', nargs=('?' if current else 1),
|
|
help=old_name_help, default=current)
|
|
parser.add_argument('new_name', help='The new branch name.')
|
|
|
|
opts = parser.parse_args(args)
|
|
|
|
# when nargs=1, we get a list :(
|
|
if isinstance(opts.old_name, list):
|
|
opts.old_name = opts.old_name[0]
|
|
|
|
try:
|
|
run('branch', '-m', opts.old_name, opts.new_name)
|
|
|
|
# update the downstreams
|
|
for branch, merge in branch_config_map('merge').iteritems():
|
|
if merge == 'refs/heads/' + opts.old_name:
|
|
# Only care about local branches
|
|
if branch_config(branch, 'remote') == '.':
|
|
set_branch_config(branch, 'merge', 'refs/heads/' + opts.new_name)
|
|
except subprocess2.CalledProcessError as cpe:
|
|
sys.stderr.write(cpe.stderr)
|
|
return 1
|
|
return 0
|
|
|
|
|
|
if __name__ == '__main__': # pragma: no cover
|
|
try:
|
|
sys.exit(main(sys.argv[1:]))
|
|
except KeyboardInterrupt:
|
|
sys.stderr.write('interrupted\n')
|
|
sys.exit(1)
|