Index: tools/push-to-trunk/push_to_trunk.py |
diff --git a/tools/push-to-trunk/push_to_trunk.py b/tools/push-to-trunk/push_to_trunk.py |
index b22c900aa258bb24d9186edff6dbc1869bd6df71..ea481e0f3eaeb10ef3d0bb351c2f09bebaae6fd9 100755 |
--- a/tools/push-to-trunk/push_to_trunk.py |
+++ b/tools/push-to-trunk/push_to_trunk.py |
@@ -34,8 +34,9 @@ import urllib2 |
from common_includes import * |
-PUSH_MESSAGE_SUFFIX = " (based on bleeding_edge revision r%d)" |
-PUSH_MESSAGE_RE = re.compile(r".* \(based on bleeding_edge revision r(\d+)\)$") |
+PUSH_MSG_SVN_RE = re.compile(r".* \(based on bleeding_edge revision r(\d+)\)$") |
+PUSH_MSG_GIT_SUFFIX = " (based on %s)" |
+PUSH_MSG_GIT_RE = re.compile(r".* \(based on (?P<git_rev>[a-fA-F0-9]+)\)$") |
class Preparation(Step): |
MESSAGE = "Preparation." |
@@ -65,7 +66,7 @@ class PreparePushRevision(Step): |
def RunStep(self): |
if self._options.revision: |
- self["push_hash"] = self.vc.SvnGit(self._options.revision) |
+ self["push_hash"] = self._options.revision |
else: |
self["push_hash"] = self.GitLog(n=1, format="%H", git_hash="HEAD") |
if not self["push_hash"]: # pragma: no cover |
@@ -92,16 +93,24 @@ class DetectLastPush(Step): |
# Retrieve the bleeding edge revision of the last push from the text in |
# the push commit message. |
last_push_title = self.GitLog(n=1, format="%s", git_hash=last_push) |
- last_push_be_svn = PUSH_MESSAGE_RE.match(last_push_title).group(1) |
- if not last_push_be_svn: # pragma: no cover |
- self.Die("Could not retrieve bleeding edge revision for trunk push %s" |
- % last_push) |
- last_push_bleeding_edge = self.vc.SvnGit(last_push_be_svn) |
+ # TODO(machenbach): This is only needed for the git transition. Can be |
+ # removed after one successful trunk push. |
+ match = PUSH_MSG_SVN_RE.match(last_push_title) |
+ if match: |
+ last_push_be_svn = match.group(1) |
+ if not last_push_be_svn: # pragma: no cover |
+ self.Die("Could not retrieve bleeding edge rev for trunk push %s" |
+ % last_push) |
+ last_push_bleeding_edge = self.vc.SvnGit(last_push_be_svn) |
+ else: |
+ last_push_bleeding_edge = PUSH_MSG_GIT_RE.match( |
+ last_push_title).group("git_rev") |
+ |
if not last_push_bleeding_edge: # pragma: no cover |
self.Die("Could not retrieve bleeding edge git hash for trunk push %s" |
% last_push) |
- # This points to the svn revision of the last push on trunk. |
+ # This points to the git hash of the last push on trunk. |
self["last_push_trunk"] = last_push |
# This points to the last bleeding_edge revision that went into the last |
# push. |
@@ -270,10 +279,8 @@ class SquashCommits(Step): |
# Remove date and trailing white space. |
text = re.sub(r"^%s: " % self["date"], "", text.rstrip()) |
- # Retrieve svn revision for showing the used bleeding edge revision in the |
- # commit message. |
- self["svn_revision"] = self.vc.GitSvn(self["push_hash"]) |
- suffix = PUSH_MESSAGE_SUFFIX % int(self["svn_revision"]) |
+ # Show the used master hash in the commit message. |
+ suffix = PUSH_MSG_GIT_SUFFIX % self["push_hash"] |
text = MSub(r"^(Version \d+\.\d+\.\d+)$", "\\1%s" % suffix, text) |
# Remove indentation and merge paragraphs into single long lines, keeping |
@@ -395,7 +402,7 @@ class PushToTrunk(ScriptsBase): |
parser.add_argument("-l", "--last-push", |
help="The git commit ID of the last push to trunk.") |
parser.add_argument("-R", "--revision", |
- help="The svn revision to push (defaults to HEAD).") |
+ help="The git commit ID to push (defaults to HEAD).") |
def _ProcessOptions(self, options): # pragma: no cover |
if not options.manual and not options.reviewer: |
@@ -404,10 +411,6 @@ class PushToTrunk(ScriptsBase): |
if not options.manual and not options.author: |
print "Specify your chromium.org email with -a in (semi-)automatic mode." |
return False |
- if options.revision and not int(options.revision) > 0: |
- print("The --revision flag must be a positiv integer pointing to a " |
- "valid svn revision.") |
- return False |
options.tbr_commit = not options.manual |
return True |