| Index: cros_mark_as_stable.py
|
| diff --git a/cros_mark_as_stable.py b/cros_mark_as_stable.py
|
| index 5df6a83fef1989d811fe28c895ae6d228387185f..2425ff2b02b84519dcc91e2c8ce859afcf558141 100755
|
| --- a/cros_mark_as_stable.py
|
| +++ b/cros_mark_as_stable.py
|
| @@ -215,6 +215,7 @@ def _PushChange():
|
| Raises:
|
| OSError: Error occurred while pushing.
|
| """
|
| + num_retries = 5
|
|
|
| # TODO(sosa) - Add logic for buildbot to check whether other slaves have
|
| # completed and push this change only if they have.
|
| @@ -229,16 +230,25 @@ def _PushChange():
|
| gflags.FLAGS.tracking_branch + '..')
|
| description = 'Marking set of ebuilds as stable\n\n%s' % description
|
| merge_branch_name = 'merge_branch'
|
| - _SimpleRunCommand('git remote update')
|
| - merge_branch = _GitBranch(merge_branch_name)
|
| - merge_branch.CreateBranch()
|
| - if not merge_branch.Exists():
|
| - Die('Unable to create merge branch.')
|
| - _SimpleRunCommand('git merge --squash %s' % _STABLE_BRANCH_NAME)
|
| - _SimpleRunCommand('git commit -m "%s"' % description)
|
| - # Ugh. There has got to be an easier way to push to a tracking branch
|
| - _SimpleRunCommand('git config push.default tracking')
|
| - _SimpleRunCommand('git push')
|
| + for push_try in range(num_retries + 1):
|
| + try:
|
| + _SimpleRunCommand('git remote update')
|
| + merge_branch = _GitBranch(merge_branch_name)
|
| + merge_branch.CreateBranch()
|
| + if not merge_branch.Exists():
|
| + Die('Unable to create merge branch.')
|
| + _SimpleRunCommand('git merge --squash %s' % _STABLE_BRANCH_NAME)
|
| + _SimpleRunCommand('git commit -m "%s"' % description)
|
| + # Ugh. There has got to be an easier way to push to a tracking branch
|
| + _SimpleRunCommand('git config push.default tracking')
|
| + _SimpleRunCommand('git push')
|
| + break
|
| + except:
|
| + if push_try < num_retries:
|
| + Warning('Failed to push change, performing retry (%s/%s)' % (
|
| + push_try + 1, num_retries))
|
| + else:
|
| + raise
|
|
|
|
|
| def _SimpleRunCommand(command):
|
|
|