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

Side by Side Diff: cros_mark_as_stable.py

Issue 6291013: Have the ability for the PFQ to both rev Chrome and other packages. (Closed) Base URL: http://git.chromium.org/git/crosutils.git@master
Patch Set: Created 9 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 | « bin/cros_mark_chrome_as_stable.py ('k') | no next file » | 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/python 1 #!/usr/bin/python
2 2
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """This module uprevs a given package's ebuild to the next revision.""" 7 """This module uprevs a given package's ebuild to the next revision."""
8 8
9 9
10 import fileinput 10 import fileinput
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 # ======================= End Global Helper Functions ======================== 216 # ======================= End Global Helper Functions ========================
217 217
218 218
219 def Clean(tracking_branch): 219 def Clean(tracking_branch):
220 """Cleans up uncommitted changes. 220 """Cleans up uncommitted changes.
221 221
222 Args: 222 Args:
223 tracking_branch: The tracking branch we want to return to after the call. 223 tracking_branch: The tracking branch we want to return to after the call.
224 """ 224 """
225 _SimpleRunCommand('git reset HEAD --hard') 225 _SimpleRunCommand('git reset HEAD --hard')
226 _SimpleRunCommand('git checkout %s' % tracking_branch) 226 branch = GitBranch(STABLE_BRANCH_NAME, tracking_branch)
227 if branch.Exists():
228 branch.Checkout(branch)
229 branch.Delete()
227 230
228 231
229 def PushChange(stable_branch, tracking_branch): 232 def PushChange(stable_branch, tracking_branch):
230 """Pushes commits in the stable_branch to the remote git repository. 233 """Pushes commits in the stable_branch to the remote git repository.
231 234
232 Pushes locals commits from calls to CommitChange to the remote git 235 Pushes locals commits from calls to CommitChange to the remote git
233 repository specified by current working directory. 236 repository specified by current working directory.
234 237
235 Args: 238 Args:
236 stable_branch: The local branch with commits we want to push. 239 stable_branch: The local branch with commits we want to push.
(...skipping 28 matching lines...) Expand all
265 else: 268 else:
266 _SimpleRunCommand('git push') 269 _SimpleRunCommand('git push')
267 270
268 break 271 break
269 except: 272 except:
270 if push_try < num_retries: 273 if push_try < num_retries:
271 Warning('Failed to push change, performing retry (%s/%s)' % ( 274 Warning('Failed to push change, performing retry (%s/%s)' % (
272 push_try + 1, num_retries)) 275 push_try + 1, num_retries))
273 else: 276 else:
274 raise 277 raise
275 278
scottz 2011/01/27 05:33:38 extra new line?
276 279
280
277 class GitBranch(object): 281 class GitBranch(object):
278 """Wrapper class for a git branch.""" 282 """Wrapper class for a git branch."""
279 283
280 def __init__(self, branch_name, tracking_branch): 284 def __init__(self, branch_name, tracking_branch):
281 """Sets up variables but does not create the branch.""" 285 """Sets up variables but does not create the branch."""
282 self.branch_name = branch_name 286 self.branch_name = branch_name
283 self.tracking_branch = tracking_branch 287 self.tracking_branch = tracking_branch
284 288
285 def CreateBranch(self): 289 def CreateBranch(self):
286 """Creates a new git branch or replaces an existing one.""" 290 self.Checkout(self)
287 if self.Exists():
288 self.Delete()
289 self._Checkout(self.branch_name)
290 291
291 def _Checkout(self, target, create=True): 292 def Checkout(self, target):
292 """Function used internally to create and move between branches.""" 293 """Function used to check out to another GitBranch."""
293 if create: 294 if target.branch_name == self.tracking_branch or target.Exists():
294 git_cmd = 'git checkout -b %s %s' % (target, self.tracking_branch) 295 git_cmd = 'git checkout %s' % target.branch_name
295 else: 296 else:
296 git_cmd = 'git checkout %s' % target 297 git_cmd = 'git checkout -b %s %s' % (target.branch_name,
298 target.tracking_branch)
297 _SimpleRunCommand(git_cmd) 299 _SimpleRunCommand(git_cmd)
298 300
299 def Exists(self): 301 def Exists(self):
300 """Returns True if the branch exists.""" 302 """Returns True if the branch exists."""
301 branch_cmd = 'git branch' 303 branch_cmd = 'git branch'
302 branches = _SimpleRunCommand(branch_cmd) 304 branches = _SimpleRunCommand(branch_cmd)
303 return self.branch_name in branches.split() 305 return self.branch_name in branches.split()
304 306
305 def Delete(self): 307 def Delete(self):
306 """Deletes the branch and returns the user to the master branch. 308 """Deletes the branch and returns the user to the master branch.
307 309
308 Returns True on success. 310 Returns True on success.
309 """ 311 """
310 self._Checkout(self.tracking_branch, create=False) 312 tracking_branch = GitBranch(self.tracking_branch, self.tracking_branch)
313 self.Checkout(tracking_branch)
311 delete_cmd = 'git branch -D %s' % self.branch_name 314 delete_cmd = 'git branch -D %s' % self.branch_name
312 _SimpleRunCommand(delete_cmd) 315 _SimpleRunCommand(delete_cmd)
313 316
314 317
315 class EBuild(object): 318 class EBuild(object):
316 """Wrapper class for information about an ebuild.""" 319 """Wrapper class for information about an ebuild."""
317 320
318 def __init__(self, path): 321 def __init__(self, path):
319 """Sets up data about an ebuild from its path.""" 322 """Sets up data about an ebuild from its path."""
320 from portage.versions import pkgsplit 323 from portage.versions import pkgsplit
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 message = _GIT_COMMIT_MESSAGE % (ebuild.package, commit_id) 566 message = _GIT_COMMIT_MESSAGE % (ebuild.package, commit_id)
564 worker.CommitChange(message) 567 worker.CommitChange(message)
565 revved_packages.append(ebuild.package) 568 revved_packages.append(ebuild.package)
566 new_package_atoms.append('=%s' % new_package) 569 new_package_atoms.append('=%s' % new_package)
567 except (OSError, IOError): 570 except (OSError, IOError):
568 Warning('Cannot rev %s\n' % ebuild.package, 571 Warning('Cannot rev %s\n' % ebuild.package,
569 'Note you will have to go into %s ' 572 'Note you will have to go into %s '
570 'and reset the git repo yourself.' % overlay) 573 'and reset the git repo yourself.' % overlay)
571 raise 574 raise
572 575
573 if revved_packages: 576 _CleanStalePackages(gflags.FLAGS.board, new_package_atoms)
574 _CleanStalePackages(gflags.FLAGS.board, new_package_atoms) 577 if gflags.FLAGS.drop_file:
575 if gflags.FLAGS.drop_file: 578 fh = open(gflags.FLAGS.drop_file, 'w')
576 fh = open(gflags.FLAGS.drop_file, 'w') 579 fh.write(' '.join(revved_packages))
577 fh.write(' '.join(revved_packages)) 580 fh.close()
578 fh.close()
579 else:
580 work_branch.Delete()
581 581
582 582
583 if __name__ == '__main__': 583 if __name__ == '__main__':
584 main(sys.argv) 584 main(sys.argv)
OLDNEW
« no previous file with comments | « bin/cros_mark_chrome_as_stable.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698