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

Side by Side Diff: git-cl

Issue 461001: Add watchlist support to git-cl. (Closed)
Patch Set: new name Created 11 years 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 | « README.testing ('k') | test/basic.sh » ('j') | 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 DieWithError('Command "%s" failed.\n' % (' '.join(cmd)) + 44 DieWithError('Command "%s" failed.\n' % (' '.join(cmd)) +
45 (error_message or output)) 45 (error_message or output))
46 return output 46 return output
47 47
48 48
49 def RunGit(args, **kwargs): 49 def RunGit(args, **kwargs):
50 cmd = ['git'] + args 50 cmd = ['git'] + args
51 return RunCommand(cmd, **kwargs) 51 return RunCommand(cmd, **kwargs)
52 52
53 53
54 class Settings: 54 class Settings(object):
55 def __init__(self): 55 def __init__(self):
56 self.server = None 56 self.server = None
57 self.cc = None 57 self.cc = None
58 self.root = None 58 self.root = None
59 self.is_git_svn = None 59 self.is_git_svn = None
60 self.svn_branch = None 60 self.svn_branch = None
61 self.tree_status_url = None 61 self.tree_status_url = None
62 self.viewvc_url = None 62 self.viewvc_url = None
63 63
64 def GetServer(self, error_ok=False): 64 def GetServer(self, error_ok=False):
65 if not self.server: 65 if not self.server:
66 if not error_ok: 66 if not error_ok:
67 error_message = ('You must configure your review setup by running ' 67 error_message = ('You must configure your review setup by running '
68 '"git cl config".') 68 '"git cl config".')
69 self.server = self._GetConfig('rietveld.server', 69 self.server = self._GetConfig('rietveld.server',
70 error_message=error_message) 70 error_message=error_message)
71 else: 71 else:
72 self.server = self._GetConfig('rietveld.server', error_ok=True) 72 self.server = self._GetConfig('rietveld.server', error_ok=True)
73 return self.server 73 return self.server
74 74
75 def GetCCList(self): 75 def GetCCList(self):
76 """Return the users cc'd on this CL.
77
78 Return is a string suitable for passing to gcl with the --cc flag.
79 """
76 if self.cc is None: 80 if self.cc is None:
77 self.cc = self._GetConfig('rietveld.cc', error_ok=True) 81 self.cc = self._GetConfig('rietveld.cc', error_ok=True)
82 more_cc = self._GetConfig('rietveld.extra_cc', error_ok=True)
Mandeep Singh Baines 2009/12/04 19:28:17 What is the use case for rietveld.extra_cc? I'm gu
83 if more_cc is not None:
84 self.cc += ',' + more_cc
78 return self.cc 85 return self.cc
79 86
80 def GetRoot(self): 87 def GetRoot(self):
81 if not self.root: 88 if not self.root:
82 self.root = os.path.abspath(RunGit(['rev-parse', '--show-cdup']).strip()) 89 self.root = os.path.abspath(RunGit(['rev-parse', '--show-cdup']).strip())
83 return self.root 90 return self.root
84 91
85 def GetIsGitSvn(self): 92 def GetIsGitSvn(self):
86 """Return true if this repo looks like it's using git-svn.""" 93 """Return true if this repo looks like it's using git-svn."""
87 if self.is_git_svn is None: 94 if self.is_git_svn is None:
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 def IssueURL(issue): 195 def IssueURL(issue):
189 """Get the URL for a particular issue.""" 196 """Get the URL for a particular issue."""
190 return 'http://%s/%s' % (settings.GetServer(), issue) 197 return 'http://%s/%s' % (settings.GetServer(), issue)
191 198
192 199
193 def ShortBranchName(branch): 200 def ShortBranchName(branch):
194 """Convert a name like 'refs/heads/foo' to just 'foo'.""" 201 """Convert a name like 'refs/heads/foo' to just 'foo'."""
195 return branch.replace('refs/heads/', '') 202 return branch.replace('refs/heads/', '')
196 203
197 204
198 class Changelist: 205 class Changelist(object):
199 def __init__(self, branchref=None): 206 def __init__(self, branchref=None):
200 # Poke settings so we get the "configure your server" message if necessary. 207 # Poke settings so we get the "configure your server" message if necessary.
201 settings.GetServer() 208 settings.GetServer()
202 self.branchref = branchref 209 self.branchref = branchref
203 if self.branchref: 210 if self.branchref:
204 self.branch = ShortBranchName(self.branchref) 211 self.branch = ShortBranchName(self.branchref)
205 else: 212 else:
206 self.branch = None 213 self.branch = None
207 self.upstream_branch = None 214 self.upstream_branch = None
208 self.has_issue = False 215 self.has_issue = False
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 command = argv[1] 909 command = argv[1]
903 for name, _, func in COMMANDS: 910 for name, _, func in COMMANDS:
904 if name == command: 911 if name == command:
905 return func(argv[2:]) 912 return func(argv[2:])
906 print 'unknown command: %s' % command 913 print 'unknown command: %s' % command
907 Usage(argv[0]) 914 Usage(argv[0])
908 915
909 916
910 if __name__ == '__main__': 917 if __name__ == '__main__':
911 sys.exit(main(sys.argv)) 918 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « README.testing ('k') | test/basic.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698