Index: git_cl.py |
diff --git a/git_cl.py b/git_cl.py |
index 241e203153a6bb12bd6c08531936b03e99bcdcf3..9c3059ade2238f59b6c9a956c8abf33ee6280748 100755 |
--- a/git_cl.py |
+++ b/git_cl.py |
@@ -1255,11 +1255,15 @@ class Changelist(object): |
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 @@ class _ChangelistCodereviewBase(object): |
"""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 @@ class _RietveldChangelistImpl(_ChangelistCodereviewBase): |
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 @@ class _GerritChangelistImpl(_ChangelistCodereviewBase): |
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): |