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

Unified Diff: tools/push-to-trunk/push_to_trunk.py

Issue 102253002: Add fully automated mode to push-to-trunk script. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rename debug mode to manual mode. Created 7 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 | « tools/push-to-trunk/common_includes.py ('k') | tools/push-to-trunk/test_scripts.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 9c9c75f5646b108959035b207cb00aac2382ed3a..58e2cb924d74f7b83d8a0541b891b5ffe9c83146 100755
--- a/tools/push-to-trunk/push_to_trunk.py
+++ b/tools/push-to-trunk/push_to_trunk.py
@@ -157,9 +157,6 @@ class EditChangeLog(Step):
"entry, then edit its contents to your liking. When you're done, "
"save the file and exit your EDITOR. ")
self.ReadLine(default="")
-
- # TODO(machenbach): Don't use EDITOR in forced mode as soon as script is
- # well tested.
self.Editor(self.Config(CHANGELOG_ENTRY_FILE))
handle, new_changelog = tempfile.mkstemp()
os.close(handle)
@@ -214,7 +211,11 @@ class CommitLocal(Step):
self._state["new_minor"],
self._state["new_build"]))
self.Persist("prep_commit_msg", prep_commit_msg)
- if self.Git("commit -a -m \"%s\"" % prep_commit_msg) is None:
+
+ # Include optional TBR only in the git command. The persisted commit
+ # message is used for finding the commit again later.
+ review = "\n\nTBR=%s" % self._options.r if not self.IsManual() else ""
+ if self.Git("commit -a -m \"%s%s\"" % (prep_commit_msg, review)) is None:
self.Die("'git commit -a' failed.")
@@ -364,7 +365,7 @@ class CommitSVN(Step):
print("Sorry, grepping for the SVN revision failed. Please look for it "
"in the last command's output above and provide it manually (just "
"the number, without the leading \"r\").")
- self.DieInForcedMode("Can't prompt in forced mode.")
+ self.DieNoManualMode("Can't prompt in forced mode.")
while not trunk_revision:
print "> ",
trunk_revision = self.ReadLine()
@@ -389,7 +390,7 @@ class CheckChromium(Step):
def Run(self):
chrome_path = self._options.c
if not chrome_path:
- self.DieInForcedMode("Please specify the path to a Chromium checkout in "
+ self.DieNoManualMode("Please specify the path to a Chromium checkout in "
"forced mode.")
print ("Do you have a \"NewGit\" Chromium checkout and want "
"this script to automate creation of the roll CL? If yes, enter the "
@@ -457,12 +458,12 @@ class UploadCL(Step):
rev = self._options.r
else:
print "Please enter the email address of a reviewer for the roll CL: ",
- self.DieInForcedMode("A reviewer must be specified in forced mode.")
+ self.DieNoManualMode("A reviewer must be specified in forced mode.")
rev = self.ReadLine()
args = "commit -am \"Update V8 to version %s.\n\nTBR=%s\"" % (ver, rev)
if self.Git(args) is None:
self.Die("'git commit' failed.")
- force_flag = " -f" if self._options.f else ""
+ force_flag = " -f" if not self.IsManual() else ""
if self.Git("cl upload --send-mail%s" % force_flag, pipe=False) is None:
self.Die("'git cl upload' failed, please try again.")
print "CL uploaded."
@@ -547,6 +548,9 @@ def BuildOptions():
result.add_option("-l", "--last-push", dest="l",
help=("Manually specify the git commit ID "
"of the last push to trunk."))
+ result.add_option("-m", "--manual", dest="m",
+ help="Prompt the user at every important step.",
+ default=False, action="store_true")
result.add_option("-r", "--reviewer", dest="r",
help=("Specify the account name to be used for reviews."))
result.add_option("-s", "--step", dest="s",
@@ -559,11 +563,14 @@ def ProcessOptions(options):
if options.s < 0:
print "Bad step number %d" % options.s
return False
- if options.f and not options.r:
- print "A reviewer (-r) is required in forced mode."
+ if not options.m and not options.r:
+ print "A reviewer (-r) is required in (semi-)automatic mode."
+ return False
+ if options.f and options.m:
+ print "Manual and forced mode cannot be combined."
return False
- if options.f and not options.c:
- print "A chromium checkout (-c) is required in forced mode."
+ if not options.m and not options.c:
+ print "A chromium checkout (-c) is required in (semi-)automatic mode."
return False
return True
« no previous file with comments | « tools/push-to-trunk/common_includes.py ('k') | tools/push-to-trunk/test_scripts.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698