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

Side by Side Diff: git-cl

Issue 2014011: Add --field=patch to git cl status printing the patchset of the current issue. (Closed) Base URL: http://src.chromium.org/git/git-cl.git
Patch Set: updates Created 10 years, 7 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
« no previous file with comments | « no previous file | 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 # git-cl -- a git-command for integrating reviews on Rietveld 2 # git-cl -- a git-command for integrating reviews on Rietveld
3 # Copyright (C) 2008 Evan Martin <martine@danga.com> 3 # Copyright (C) 2008 Evan Martin <martine@danga.com>
4 4
5 import getpass 5 import getpass
6 import optparse 6 import optparse
7 import os 7 import os
8 import re 8 import re
9 import readline 9 import readline
10 import subprocess 10 import subprocess
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 self.branchref = branchref 217 self.branchref = branchref
218 if self.branchref: 218 if self.branchref:
219 self.branch = ShortBranchName(self.branchref) 219 self.branch = ShortBranchName(self.branchref)
220 else: 220 else:
221 self.branch = None 221 self.branch = None
222 self.upstream_branch = None 222 self.upstream_branch = None
223 self.has_issue = False 223 self.has_issue = False
224 self.issue = None 224 self.issue = None
225 self.has_description = False 225 self.has_description = False
226 self.description = None 226 self.description = None
227 self.has_patchset = False
228 self.patchset = None
227 229
228 def GetBranch(self): 230 def GetBranch(self):
229 """Returns the short branch name, e.g. 'master'.""" 231 """Returns the short branch name, e.g. 'master'."""
230 if not self.branch: 232 if not self.branch:
231 self.branchref = RunGit(['symbolic-ref', 'HEAD']).strip() 233 self.branchref = RunGit(['symbolic-ref', 'HEAD']).strip()
232 self.branch = ShortBranchName(self.branchref) 234 self.branch = ShortBranchName(self.branchref)
233 return self.branch 235 return self.branch
234 def GetBranchRef(self): 236 def GetBranchRef(self):
235 """Returns the full branch name, e.g. 'refs/heads/master'.""" 237 """Returns the full branch name, e.g. 'refs/heads/master'."""
236 self.GetBranch() # Poke the lazy loader. 238 self.GetBranch() # Poke the lazy loader.
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 # Load Codereview settings and download hooks (if available). 482 # Load Codereview settings and download hooks (if available).
481 hooks = LoadCodereviewSettingsFromFile(urllib2.urlopen(url)) 483 hooks = LoadCodereviewSettingsFromFile(urllib2.urlopen(url))
482 for key, filename in (('predcommit', PREDCOMMIT_HOOK), 484 for key, filename in (('predcommit', PREDCOMMIT_HOOK),
483 ('preupload', PREUPLOAD_HOOK)): 485 ('preupload', PREUPLOAD_HOOK)):
484 if key in hooks: 486 if key in hooks:
485 DownloadToFile(hooks[key], filename) 487 DownloadToFile(hooks[key], filename)
486 488
487 489
488 def CmdStatus(args): 490 def CmdStatus(args):
489 parser = optparse.OptionParser(usage='git cl status [options]') 491 parser = optparse.OptionParser(usage='git cl status [options]')
490 parser.add_option('--field', help='print only specific field (desc|id|url)') 492 parser.add_option('--field',
493 help='print only specific field (desc|id|patch|url)')
491 (options, args) = parser.parse_args(args) 494 (options, args) = parser.parse_args(args)
492 495
493 # TODO: maybe make show_branches a flag if necessary. 496 # TODO: maybe make show_branches a flag if necessary.
494 show_branches = not options.field 497 show_branches = not options.field
495 498
496 if show_branches: 499 if show_branches:
497 branches = RunGit(['for-each-ref', '--format=%(refname)', 'refs/heads']) 500 branches = RunGit(['for-each-ref', '--format=%(refname)', 'refs/heads'])
498 if branches: 501 if branches:
499 print 'Branches associated with reviews:' 502 print 'Branches associated with reviews:'
500 for branch in sorted(branches.splitlines()): 503 for branch in sorted(branches.splitlines()):
501 cl = Changelist(branchref=branch) 504 cl = Changelist(branchref=branch)
502 print " %10s: %s" % (cl.GetBranch(), cl.GetIssue()) 505 print " %10s: %s" % (cl.GetBranch(), cl.GetIssue())
503 506
504 cl = Changelist() 507 cl = Changelist()
505 if options.field: 508 if options.field:
506 if options.field.startswith('desc'): 509 if options.field.startswith('desc'):
507 print cl.GetDescription() 510 print cl.GetDescription()
508 elif options.field == 'id': 511 elif options.field == 'id':
509 print cl.GetIssue() 512 id = cl.GetIssue()
513 if id:
514 print id
515 elif options.field == 'patch':
516 patchset = cl.GetPatchset()
517 if patchset:
518 print patchset
510 elif options.field == 'url': 519 elif options.field == 'url':
511 print cl.GetIssueURL() 520 url = cl.GetIssueURL()
521 if url:
522 print url
512 else: 523 else:
513 print 524 print
514 print 'Current branch:', 525 print 'Current branch:',
515 if not cl.GetIssue(): 526 if not cl.GetIssue():
516 print 'no issue assigned.' 527 print 'no issue assigned.'
517 return 0 528 return 0
518 print cl.GetBranch() 529 print cl.GetBranch()
519 print 'Issue number:', cl.GetIssue(), '(%s)' % cl.GetIssueURL() 530 print 'Issue number:', cl.GetIssue(), '(%s)' % cl.GetIssueURL()
520 print 'Issue description:' 531 print 'Issue description:'
521 print cl.GetDescription(pretty=True) 532 print cl.GetDescription(pretty=True)
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
989 command = argv[1] 1000 command = argv[1]
990 for name, _, func in COMMANDS: 1001 for name, _, func in COMMANDS:
991 if name == command: 1002 if name == command:
992 return func(argv[2:]) 1003 return func(argv[2:])
993 print 'unknown command: %s' % command 1004 print 'unknown command: %s' % command
994 Usage(argv[0]) 1005 Usage(argv[0])
995 1006
996 1007
997 if __name__ == '__main__': 1008 if __name__ == '__main__':
998 sys.exit(main(sys.argv)) 1009 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698