Added message when upstream branch is gone.

BUG=496892

Review URL: https://codereview.chromium.org/1156223008

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@295634 0039d316-1c4b-4281-b951-d872f2087c98
changes/01/332501/1
pgervais@chromium.org 10 years ago
parent 6c14310ef8
commit 8ba38ff4dc

@ -139,6 +139,13 @@ def IsGitVersionAtLeast(min_version):
LooseVersion(version[len(prefix):]) >= LooseVersion(min_version)) LooseVersion(version[len(prefix):]) >= LooseVersion(min_version))
def BranchExists(branch):
"""Return True if specified branch exists."""
code, _ = RunGitWithCode(['rev-parse', '--verify', branch],
suppress_stderr=True)
return not code
def ask_for_data(prompt): def ask_for_data(prompt):
try: try:
return raw_input(prompt) return raw_input(prompt)
@ -719,8 +726,12 @@ or verify this branch is set up to track another (via the --track argument to
return remote, upstream_branch return remote, upstream_branch
def GetCommonAncestorWithUpstream(self): def GetCommonAncestorWithUpstream(self):
upstream_branch = self.GetUpstreamBranch()
if not BranchExists(upstream_branch):
DieWithError('The upstream for the current branch (%s) does not exist '
'anymore.\nPlease fix it and try again.' % self.GetBranch())
return git_common.get_or_create_merge_base(self.GetBranch(), return git_common.get_or_create_merge_base(self.GetBranch(),
self.GetUpstreamBranch()) upstream_branch)
def GetUpstreamBranch(self): def GetUpstreamBranch(self):
if self.upstream_branch is None: if self.upstream_branch is None:

@ -86,6 +86,7 @@ class TestGitCl(TestCase):
self.mock(git_common, 'get_or_create_merge_base', self.mock(git_common, 'get_or_create_merge_base',
lambda *a: ( lambda *a: (
self._mocked_call(['get_or_create_merge_base']+list(a)))) self._mocked_call(['get_or_create_merge_base']+list(a))))
self.mock(git_cl, 'BranchExists', lambda _: True)
self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: '') self.mock(git_cl, 'FindCodereviewSettingsFile', lambda: '')
self.mock(git_cl, 'ask_for_data', self._mocked_call) self.mock(git_cl, 'ask_for_data', self._mocked_call)
self.mock(git_cl.breakpad, 'post', self._mocked_call) self.mock(git_cl.breakpad, 'post', self._mocked_call)

Loading…
Cancel
Save