Let push-to-trunk script retry failing svn writes.
authormachenbach@chromium.org <machenbach@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 23 Jan 2014 10:55:40 +0000 (10:55 +0000)
committermachenbach@chromium.org <machenbach@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 23 Jan 2014 10:55:40 +0000 (10:55 +0000)
BUG=
TEST=python -m unittest test_scripts
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/144463003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

tools/push-to-trunk/push_to_trunk.py

index 06e277e..a934228 100755 (executable)
@@ -256,7 +256,8 @@ class CommitRepository(Step):
     if self.Git("cl presubmit", "PRESUBMIT_TREE_CHECK=\"skip\"") is None:
       self.Die("'git cl presubmit' failed, please try again.")
 
-    if self.Git("cl dcommit -f --bypass-hooks") is None:
+    if self.Git("cl dcommit -f --bypass-hooks",
+                retry_on=lambda x: x is None) is None:
       self.Die("'git cl dcommit' failed, please try again.")
 
 
@@ -366,7 +367,7 @@ class CommitSVN(Step):
   MESSAGE = "Commit to SVN."
 
   def RunStep(self):
-    result = self.Git("svn dcommit 2>&1")
+    result = self.Git("svn dcommit 2>&1", retry_on=lambda x: x is None)
     if not result:
       self.Die("'git svn dcommit' failed.")
     result = filter(lambda x: re.search(r"^Committed r[0-9]+", x),
@@ -395,7 +396,8 @@ class TagRevision(Step):
     ver = "%s.%s.%s" % (self._state["major"],
                         self._state["minor"],
                         self._state["build"])
-    if self.Git("svn tag %s -m \"Tagging version %s\"" % (ver, ver)) is None:
+    if self.Git("svn tag %s -m \"Tagging version %s\"" % (ver, ver),
+                retry_on=lambda x: x is None) is None:
       self.Die("'git svn tag' failed.")