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

Unified Diff: git_cl.py

Issue 5972005: Add support for post-dcommit hooks (Closed) Base URL: http://git.chromium.org/git/git-cl.git@master
Patch Set: Created 10 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: git_cl.py
diff --git a/git_cl.py b/git_cl.py
index ea1238261dc8c1aa2fe6d30485a13264bd1de242..416f60e48755420c0113d01e6dbc984c41040c81 100644
--- a/git_cl.py
+++ b/git_cl.py
@@ -217,6 +217,13 @@ class Settings(object):
self.viewvc_url = self._GetConfig('rietveld.viewvc-url', error_ok=True)
return self.viewvc_url
+ def GetRenamedBranch(self, cmd, branch):
+ rename = self._GetConfig('rietveld.rename-after-%s' % cmd,
+ error_ok=True)
M-A Ruel 2010/12/22 20:28:21 align either at ( or at +4 from previous line.
sadrul 2010/12/22 20:39:50 Done.
+ if rename:
+ rename = rename.replace('%s', branch)
+ return rename
+
def _GetConfig(self, param, **kwargs):
self.LazyUpdateIfNeeded()
return RunGit(['config', param], **kwargs).strip()
@@ -971,6 +978,7 @@ def SendUpstream(parser, args, cmd):
# Stuff our change into the merge branch.
# We wrap in a try...finally block so if anything goes wrong,
# we clean up the branches.
+ success = False
M-A Ruel 2010/12/22 20:28:21 You could use instead; retcode = 0 and check for
sadrul 2010/12/22 20:39:50 I set retcode = 1 here so that the branch doesn't
try:
RunGit(['checkout', '-q', '-b', MERGE_BRANCH, base_branch])
RunGit(['merge', '--squash', cl.GetBranchRef()])
@@ -983,15 +991,23 @@ def SendUpstream(parser, args, cmd):
remote, branch = cl.FetchUpstreamTuple()
retcode, output = RunGitWithCode(
['push', '--porcelain', remote, 'HEAD:%s' % branch])
+ success = True
logging.debug(output)
else:
# dcommit the merge branch.
output = RunGit(['svn', 'dcommit', '--no-rebase'])
+ success = True
+
finally:
# And then swap back to the original branch and clean up.
RunGit(['checkout', '-q', cl.GetBranch()])
RunGit(['branch', '-D', MERGE_BRANCH])
+ if success:
+ rename = settings.GetRenamedBranch(cmd, cl.GetBranch())
+ if rename:
+ RunGit(['branch', '-m', cl.GetBranch(), rename])
+
if cl.GetIssue():
if cmd == 'dcommit' and 'Committed r' in output:
revision = re.match('.*?\nCommitted r(\\d+)', output, re.DOTALL).group(1)
« 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