git cl issue 0 should really clear issue.
It used to clear just issue number and patchset, but that's not
all state that associates a given branch with codereview site.
R=andybons@chromium.org
BUG=609295
Review-Url: https://codereview.chromium.org/2032433003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300683 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index 241e203..9c3059a 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -1255,11 +1255,15 @@
if codereview_server:
RunGit(['config', codereview_setting, codereview_server])
else:
- current_issue = self.GetIssue()
- if current_issue:
- RunGit(['config', '--unset', issue_setting])
+ # Reset it regardless. It doesn't hurt.
+ config_settings = [issue_setting, self._codereview_impl.PatchsetSetting()]
+ for prop in (['last-upload-hash'] +
+ self._codereview_impl._PostUnsetIssueProperties()):
+ config_settings.append('branch.%s.%s' % (self.GetBranch(), prop))
+ for setting in config_settings:
+ RunGit(['config', '--unset', setting], error_ok=True)
self.issue = None
- self.SetPatchset(None)
+ self.patchset = None
def GetChange(self, upstream_branch, author):
if not self.GitSanityChecks(upstream_branch):
@@ -1497,6 +1501,10 @@
"""Returns name of git config setting which stores issue number."""
raise NotImplementedError()
+ def _PostUnsetIssueProperties(self):
+ """Which branch-specific properties to erase when unsettin issue."""
+ raise NotImplementedError()
+
def GetRieveldObjForPresubmit(self):
# This is an unfortunate Rietveld-embeddedness in presubmit.
# For non-Rietveld codereviews, this probably should return a dummy object.
@@ -1738,6 +1746,10 @@
return 'branch.%s.rietveldserver' % branch
return None
+ def _PostUnsetIssueProperties(self):
+ """Which branch-specific properties to erase when unsetting issue."""
+ return ['rietveldserver']
+
def GetRieveldObjForPresubmit(self):
return self.RpcServer()
@@ -2094,6 +2106,13 @@
return 'branch.%s.gerritserver' % branch
return None
+ def _PostUnsetIssueProperties(self):
+ """Which branch-specific properties to erase when unsetting issue."""
+ return [
+ 'gerritserver',
+ 'gerritsquashhash',
+ ]
+
def GetRieveldObjForPresubmit(self):
class ThisIsNotRietveldIssue(object):
def __nonzero__(self):