Chromium Code Reviews| Index: cros_mark_as_stable.py |
| diff --git a/cros_mark_as_stable.py b/cros_mark_as_stable.py |
| index 8fa635e467ed16f8cca6310e6cbc0387fccc165f..bf2ab82e5fafaeb18f2f8bb074d7e95a1b1a5468 100755 |
| --- a/cros_mark_as_stable.py |
| +++ b/cros_mark_as_stable.py |
| @@ -223,7 +223,10 @@ def Clean(tracking_branch): |
| tracking_branch: The tracking branch we want to return to after the call. |
| """ |
| _SimpleRunCommand('git reset HEAD --hard') |
| - _SimpleRunCommand('git checkout %s' % tracking_branch) |
| + branch = GitBranch(STABLE_BRANCH_NAME, tracking_branch) |
| + if branch.Exists(): |
| + branch.Checkout(branch) |
| + branch.Delete() |
| def PushChange(stable_branch, tracking_branch): |
| @@ -274,6 +277,7 @@ def PushChange(stable_branch, tracking_branch): |
| raise |
|
scottz
2011/01/27 05:33:38
extra new line?
|
| + |
| class GitBranch(object): |
| """Wrapper class for a git branch.""" |
| @@ -283,17 +287,15 @@ class GitBranch(object): |
| self.tracking_branch = tracking_branch |
| def CreateBranch(self): |
| - """Creates a new git branch or replaces an existing one.""" |
| - if self.Exists(): |
| - self.Delete() |
| - self._Checkout(self.branch_name) |
| - |
| - def _Checkout(self, target, create=True): |
| - """Function used internally to create and move between branches.""" |
| - if create: |
| - git_cmd = 'git checkout -b %s %s' % (target, self.tracking_branch) |
| + self.Checkout(self) |
| + |
| + def Checkout(self, target): |
| + """Function used to check out to another GitBranch.""" |
| + if target.branch_name == self.tracking_branch or target.Exists(): |
| + git_cmd = 'git checkout %s' % target.branch_name |
| else: |
| - git_cmd = 'git checkout %s' % target |
| + git_cmd = 'git checkout -b %s %s' % (target.branch_name, |
| + target.tracking_branch) |
| _SimpleRunCommand(git_cmd) |
| def Exists(self): |
| @@ -307,7 +309,8 @@ class GitBranch(object): |
| Returns True on success. |
| """ |
| - self._Checkout(self.tracking_branch, create=False) |
| + tracking_branch = GitBranch(self.tracking_branch, self.tracking_branch) |
| + self.Checkout(tracking_branch) |
| delete_cmd = 'git branch -D %s' % self.branch_name |
| _SimpleRunCommand(delete_cmd) |
| @@ -570,14 +573,11 @@ def main(argv): |
| 'and reset the git repo yourself.' % overlay) |
| raise |
| - if revved_packages: |
| - _CleanStalePackages(gflags.FLAGS.board, new_package_atoms) |
| - if gflags.FLAGS.drop_file: |
| - fh = open(gflags.FLAGS.drop_file, 'w') |
| - fh.write(' '.join(revved_packages)) |
| - fh.close() |
| - else: |
| - work_branch.Delete() |
| + _CleanStalePackages(gflags.FLAGS.board, new_package_atoms) |
| + if gflags.FLAGS.drop_file: |
| + fh = open(gflags.FLAGS.drop_file, 'w') |
| + fh.write(' '.join(revved_packages)) |
| + fh.close() |
| if __name__ == '__main__': |