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

Side by Side Diff: git_rename_branch.py

Issue 184253003: Add git-reup and friends (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@freeze_thaw
Patch Set: fix pylint Created 6 years, 8 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
« no previous file with comments | « git_rebase_update.py ('k') | git_reparent_branch.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
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
4 # found in the LICENSE file.
5
6 """Rename the current branch while maintaining correct dependencies."""
7
8 import argparse
9 import sys
10
11 import subprocess2
12
13 from git_common import current_branch, run, set_branch_config, branch_config
14 from git_common import branch_config_map
15
16 def main(args):
17 current = current_branch()
18 if current == 'HEAD':
19 current = None
20 old_name_help = 'The old branch to rename.'
21 if current:
22 old_name_help += ' (default %(default)r)'
23
24 parser = argparse.ArgumentParser()
25 parser.add_argument('old_name', nargs=('?' if current else 1),
26 help=old_name_help, default=current)
27 parser.add_argument('new_name', help='The new branch name.')
28
29 opts = parser.parse_args(args)
30
31 # when nargs=1, we get a list :(
32 if isinstance(opts.old_name, list):
33 opts.old_name = opts.old_name[0]
34
35 try:
36 run('branch', '-m', opts.old_name, opts.new_name)
37
38 # update the downstreams
39 for branch, merge in branch_config_map('merge').iteritems():
40 if merge == 'refs/heads/' + opts.old_name:
41 # Only care about local branches
42 if branch_config(branch, 'remote') == '.':
43 set_branch_config(branch, 'merge', 'refs/heads/' + opts.new_name)
44 except subprocess2.CalledProcessError as cpe:
45 sys.stderr.write(cpe.stderr)
46 return 1
47
48
49 if __name__ == '__main__': # pragma: no cover
50 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « git_rebase_update.py ('k') | git_reparent_branch.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698