Index: git_cl.py |
diff --git a/git_cl.py b/git_cl.py |
index f9a008c889b1eb7f0d6ae9afedd51d034e5d5f0a..f5ecd7fda143ebda919ad3533554db973a556959 100755 |
--- a/git_cl.py |
+++ b/git_cl.py |
@@ -195,17 +195,6 @@ class Settings(object): |
'rietveld.server', error_message=error_message)) |
return self.default_server |
- def GetCCList(self): |
- """Return the users cc'd on this CL. |
- |
- Return is a string suitable for passing to gcl with the --cc flag. |
- """ |
- if self.cc is None: |
- base_cc = self._GetConfig('rietveld.cc', error_ok=True) |
- more_cc = self._GetConfig('rietveld.extracc', error_ok=True) |
- self.cc = ','.join(filter(None, (base_cc, more_cc))) or '' |
- return self.cc |
- |
def GetRoot(self): |
if not self.root: |
self.root = os.path.abspath(RunGit(['rev-parse', '--show-cdup']).strip()) |
@@ -295,6 +284,9 @@ class Settings(object): |
self.viewvc_url = self._GetConfig('rietveld.viewvc-url', error_ok=True) |
return self.viewvc_url |
+ def GetDefaultCCList(self): |
+ return self._GetConfig('rietveld.cc', error_ok=True) |
+ |
def _GetConfig(self, param, **kwargs): |
self.LazyUpdateIfNeeded() |
return RunGit(['config', param], **kwargs).strip() |
@@ -354,6 +346,25 @@ class Changelist(object): |
self.has_patchset = False |
self.patchset = None |
self._rpc_server = None |
+ self.cc = None |
+ self.watchers = () |
+ |
+ def GetCCList(self): |
+ """Return the users cc'd on this CL. |
+ |
+ Return is a string suitable for passing to gcl with the --cc flag. |
+ """ |
+ if self.cc is None: |
+ base_cc = settings .GetDefaultCCList() |
+ more_cc = ','.join(self.watchers) |
+ self.cc = ','.join(filter(None, (base_cc, more_cc))) or '' |
+ return self.cc |
+ |
+ def SetWatchers(self, watchers): |
+ """Set the list of email addresses that should be cc'd based on the changed |
+ files in this CL. |
+ """ |
+ self.watchers = watchers |
def GetBranch(self): |
"""Returns the short branch name, e.g. 'master'.""" |
@@ -556,7 +567,7 @@ def GetCodereviewSettingsInteractively(): |
elif new_val and new_val != initial: |
RunGit(['config', 'rietveld.' + name, new_val]) |
- SetProperty(settings.GetCCList(), 'CC list', 'cc') |
+ SetProperty(settings.GetDefaultCCList(), 'CC list', 'cc') |
SetProperty(settings.GetTreeStatusUrl(error_ok=True), 'Tree status URL', |
'tree-status-url') |
SetProperty(settings.GetViewVCUrl(), 'ViewVC URL', 'viewvc-url') |
@@ -830,9 +841,7 @@ def RunHook(committing, upstream_branch, rietveld_server, tbr, may_prompt): |
if not committing: |
watchlist = watchlists.Watchlists(change.RepositoryRoot()) |
files = [f.LocalPath() for f in change.AffectedFiles()] |
- watchers = watchlist.GetWatchersForPaths(files) |
- RunCommand(['git', 'config', '--replace-all', |
- 'rietveld.extracc', ','.join(watchers)]) |
+ cl.SetWatchers(watchlist.GetWatchersForPaths(files)) |
output = presubmit_support.DoPresubmitChecks(change, committing, |
verbose=False, output_stream=sys.stdout, input_stream=sys.stdin, |
@@ -961,7 +970,7 @@ def CMDupload(parser, args): |
upload_args.extend(['--description', change_desc.description]) |
if change_desc.reviewers: |
upload_args.extend(['--reviewers', change_desc.reviewers]) |
- cc = ','.join(filter(None, (settings.GetCCList(), options.cc))) |
+ cc = ','.join(filter(None, (cl.GetCCList(), options.cc))) |
if cc: |
upload_args.extend(['--cc', cc]) |