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

Side by Side Diff: tools/push-to-trunk/merge_to_branch.py

Issue 166903012: Refactoring: Extract git checks in push and merge scripts. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Review. Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « tools/push-to-trunk/common_includes.py ('k') | tools/push-to-trunk/push_to_trunk.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 the V8 project authors. All rights reserved. 2 # Copyright 2014 the V8 project authors. All rights reserved.
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following 10 # copyright notice, this list of conditions and the following
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 self.Die("Please specify a branch to merge to") 84 self.Die("Please specify a branch to merge to")
85 85
86 self.CommonPrepare() 86 self.CommonPrepare()
87 self.PrepareBranch() 87 self.PrepareBranch()
88 88
89 89
90 class CreateBranch(Step): 90 class CreateBranch(Step):
91 MESSAGE = "Create a fresh branch for the patch." 91 MESSAGE = "Create a fresh branch for the patch."
92 92
93 def RunStep(self): 93 def RunStep(self):
94 args = "checkout -b %s svn/%s" % (self.Config(BRANCHNAME), 94 self.Git("checkout -b %s svn/%s" % (self.Config(BRANCHNAME),
95 self["merge_to_branch"]) 95 self["merge_to_branch"]))
96 if self.Git(args) is None:
97 self.die("Creating branch %s failed." % self.Config(BRANCHNAME))
98 96
99 97
100 class SearchArchitecturePorts(Step): 98 class SearchArchitecturePorts(Step):
101 MESSAGE = "Search for corresponding architecture ports." 99 MESSAGE = "Search for corresponding architecture ports."
102 100
103 def RunStep(self): 101 def RunStep(self):
104 self["full_revision_list"] = list(OrderedDict.fromkeys(self._options.args)) 102 self["full_revision_list"] = list(OrderedDict.fromkeys(self._options.args))
105 port_revision_list = [] 103 port_revision_list = []
106 for revision in self["full_revision_list"]: 104 for revision in self["full_revision_list"]:
107 # Search for commits which matches the "Port rXXX" pattern. 105 # Search for commits which matches the "Port rXXX" pattern.
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 TextToFile(text, self.Config(VERSION_FILE)) 217 TextToFile(text, self.Config(VERSION_FILE))
220 else: 218 else:
221 self.Editor(self.Config(VERSION_FILE)) 219 self.Editor(self.Config(VERSION_FILE))
222 self.ReadAndPersistVersion("new_") 220 self.ReadAndPersistVersion("new_")
223 221
224 222
225 class CommitLocal(Step): 223 class CommitLocal(Step):
226 MESSAGE = "Commit to local branch." 224 MESSAGE = "Commit to local branch."
227 225
228 def RunStep(self): 226 def RunStep(self):
229 if self.Git("commit -a -F \"%s\"" % self.Config(COMMITMSG_FILE)) is None: 227 self.Git("commit -a -F \"%s\"" % self.Config(COMMITMSG_FILE))
230 self.Die("'git commit -a' failed.")
231 228
232 229
233 class CommitRepository(Step): 230 class CommitRepository(Step):
234 MESSAGE = "Commit to the repository." 231 MESSAGE = "Commit to the repository."
235 232
236 def RunStep(self): 233 def RunStep(self):
237 if self.Git("checkout %s" % self.Config(BRANCHNAME)) is None: 234 self.Git("checkout %s" % self.Config(BRANCHNAME))
238 self.Die("Cannot ensure that the current branch is %s"
239 % self.Config(BRANCHNAME))
240 self.WaitForLGTM() 235 self.WaitForLGTM()
241 if self.Git("cl presubmit", "PRESUBMIT_TREE_CHECK=\"skip\"") is None: 236 self.Git("cl presubmit", "PRESUBMIT_TREE_CHECK=\"skip\"")
242 self.Die("Presubmit failed.") 237 self.Git("cl dcommit -f --bypass-hooks", retry_on=lambda x: x is None)
243
244 if self.Git("cl dcommit -f --bypass-hooks",
245 retry_on=lambda x: x is None) is None:
246 self.Die("Failed to commit to %s" % self._status["merge_to_branch"])
247 238
248 239
249 class PrepareSVN(Step): 240 class PrepareSVN(Step):
250 MESSAGE = "Determine svn commit revision." 241 MESSAGE = "Determine svn commit revision."
251 242
252 def RunStep(self): 243 def RunStep(self):
253 if self._options.revert_bleeding_edge: 244 if self._options.revert_bleeding_edge:
254 return 245 return
255 if self.Git("svn fetch") is None: 246 self.Git("svn fetch")
256 self.Die("'git svn fetch' failed.")
257 args = ("log -1 --format=%%H --grep=\"%s\" svn/%s" 247 args = ("log -1 --format=%%H --grep=\"%s\" svn/%s"
258 % (self["new_commit_msg"], self["merge_to_branch"])) 248 % (self["new_commit_msg"], self["merge_to_branch"]))
259 commit_hash = self.Git(args).strip() 249 commit_hash = self.Git(args).strip()
260 if not commit_hash: 250 if not commit_hash:
261 self.Die("Unable to map git commit to svn revision.") 251 self.Die("Unable to map git commit to svn revision.")
262 self["svn_revision"] = self.Git( 252 self["svn_revision"] = self.Git(
263 "svn find-rev %s" % commit_hash).strip() 253 "svn find-rev %s" % commit_hash).strip()
264 print "subversion revision number is r%s" % self["svn_revision"] 254 print "subversion revision number is r%s" % self["svn_revision"]
265 255
266 256
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 def Main(): 356 def Main():
367 parser = BuildOptions() 357 parser = BuildOptions()
368 (options, args) = parser.parse_args() 358 (options, args) = parser.parse_args()
369 if not ProcessOptions(options, args): 359 if not ProcessOptions(options, args):
370 parser.print_help() 360 parser.print_help()
371 return 1 361 return 1
372 RunMergeToBranch(CONFIG, MergeToBranchOptions(options, args)) 362 RunMergeToBranch(CONFIG, MergeToBranchOptions(options, args))
373 363
374 if __name__ == "__main__": 364 if __name__ == "__main__":
375 sys.exit(Main()) 365 sys.exit(Main())
OLDNEW
« no previous file with comments | « tools/push-to-trunk/common_includes.py ('k') | tools/push-to-trunk/push_to_trunk.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698