Support git 2.15 and newer

The 2.15 release of git drops support for `git branch --set-upstream`
and replaces it with `git branch --set-upstream-to` which was added in
git 1.8. Move from --set-upstream to --set-upstream-to in order to
support git 2.15 and beyond. Note that this specifically affects the
`git review -d` functionality as it is what needs to update the
upstream.

This does drop support for git 1.7 and older though as this option did
not exist then. Polling linux distros and OS X the oldest git I can find
is on CentOS 7 which has 1.8 so this should be fine.

Story: 2001266
Co-Authored-By: Harry Mallon <Harry.Mallon@codex.online>
Change-Id: I5ded1ab39bb2c76bdc38655299bac11b4584e138
This commit is contained in:
Clark Boylan 2017-11-05 14:32:52 -08:00
parent b61f5b2ec9
commit d3d66a4715
3 changed files with 9 additions and 7 deletions

View File

@ -16,6 +16,8 @@ For assistance installing pacakges from ``pypi`` on your OS check out
For installation from source simply add ``git-review`` to your $PATH
after installing the dependencies listed in requirements.txt
.. note:: ``git-review`` requires git version 1.8 or greater.
Setup
=====

View File

@ -1227,11 +1227,11 @@ def checkout_review(branch_name, remote, remote_branch):
run_command_exc(CheckoutNewBranchFailed,
"git", "checkout", "-b",
branch_name, "FETCH_HEAD")
# --set-upstream-to is not supported in git 1.7
# --set-upstream-to is supported starting in git 1.8
run_command_exc(SetUpstreamBranchFailed,
"git", "branch", "--set-upstream",
branch_name,
'%s/%s' % (remote, remote_branch))
"git", "branch", "--set-upstream-to",
'%s/%s' % (remote, remote_branch),
branch_name)
except CheckoutNewBranchFailed as e:
if re.search("already exists\.?", e.output):

View File

@ -310,9 +310,9 @@ class GitReviewTestCase(tests.BaseGitReviewTestCase):
# track different branch than expected in changeset
branch = self._run_git('rev-parse', '--abbrev-ref', 'HEAD')
self._run_git('branch',
'--set-upstream',
branch,
'remotes/origin/other')
'--set-upstream-to',
'remotes/origin/other',
branch)
self.assertRaises(
Exception, # cmd.BranchTrackingMismatch inside
self._run_git_review, '-d', change_id)