From d3d66a471529547d6df65c6bf9e26d7eeea91a80 Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Sun, 5 Nov 2017 14:32:52 -0800 Subject: [PATCH] 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 Change-Id: I5ded1ab39bb2c76bdc38655299bac11b4584e138 --- doc/source/installation.rst | 2 ++ git_review/cmd.py | 8 ++++---- git_review/tests/test_git_review.py | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/doc/source/installation.rst b/doc/source/installation.rst index a64d6c71..c36891c9 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -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 ===== diff --git a/git_review/cmd.py b/git_review/cmd.py index b0956ffa..b603994f 100755 --- a/git_review/cmd.py +++ b/git_review/cmd.py @@ -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): diff --git a/git_review/tests/test_git_review.py b/git_review/tests/test_git_review.py index 443caad1..de004868 100644 --- a/git_review/tests/test_git_review.py +++ b/git_review/tests/test_git_review.py @@ -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)