FreeBSD Bugzilla – Attachment 232040 Details for
Bug 262148
devel/git-review: Fails to run with git >= 2.3.40: fatal: --preserve-merges was replaced by --rebase-merges
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
0001-Compatibility-fix-for-git-2.34.patch
0001-Compatibility-fix-for-git-2.34.patch (text/plain), 5.76 KB, created by
marek
on 2022-02-23 13:52:19 UTC
(
hide
)
Description:
0001-Compatibility-fix-for-git-2.34.patch
Filename:
MIME Type:
Creator:
marek
Created:
2022-02-23 13:52:19 UTC
Size:
5.76 KB
patch
obsolete
>From 26e7de010ee28e43cb15d947e18f05d7cee8d851 Mon Sep 17 00:00:00 2001 >From: Marek Krawczyk <marek.krawczyk@rtbhouse.com> >Date: Wed, 23 Feb 2022 13:55:57 +0100 >Subject: [PATCH] Compatibility fix for git >= 2.34 > >--- > devel/git-review/Makefile | 1 + > .../git-review/files/patch-git__review_cmd.py | 32 ++++++++++ > ...tch-git__review_tests_test__git__review.py | 59 +++++++++++++++++++ > 3 files changed, 92 insertions(+) > create mode 100644 devel/git-review/files/patch-git__review_cmd.py > create mode 100644 devel/git-review/files/patch-git__review_tests_test__git__review.py > >diff --git a/devel/git-review/Makefile b/devel/git-review/Makefile >index 4a3235a40829..8245007003e0 100644 >--- a/devel/git-review/Makefile >+++ b/devel/git-review/Makefile >@@ -1,5 +1,6 @@ > PORTNAME= git-review > DISTVERSION= 1.28.0 >+PORTREVISION= 1 > CATEGORIES= devel python > MASTER_SITES= CHEESESHOP > >diff --git a/devel/git-review/files/patch-git__review_cmd.py b/devel/git-review/files/patch-git__review_cmd.py >new file mode 100644 >index 000000000000..59e4a40a712e >--- /dev/null >+++ b/devel/git-review/files/patch-git__review_cmd.py >@@ -0,0 +1,32 @@ >+--- git_review/cmd.py.orig 2019-04-08 20:07:09 UTC >++++ git_review/cmd.py >+@@ -851,10 +851,25 @@ def rebase_changes(branch, remote, interactive=True): >+ "re-run with the '-R' option enabled." % (branch, remote)) >+ sys.exit(1) >+ >+- if interactive: >+- cmd = "git rebase -p -i %s" % remote_branch >+- else: >+- cmd = "git rebase -p %s" % remote_branch >++ # Determine git version to set rebase flags below. >++ output = run_command("git version") >++ rebase_flag = "--rebase-merges" >++ if "git version" in output: >++ try: >++ v = output.rsplit(None, 1)[1] >++ gitv = tuple(map(int, v.split('.')[:3])) >++ if gitv < (2, 18, 0): >++ rebase_flag = "--preserve-merges" >++ except Exception: >++ # We tried to determine the version and failed. Use current git >++ # flag as fallback. >++ warn("Could not determine git version. " >++ "Using modern git rebase flags.") >++ >++ interactive_flag = interactive and '-i' or '' >++ >++ cmd = "git rebase %s %s %s" % \ >++ (rebase_flag, interactive_flag, remote_branch) >+ >+ (status, output) = run_command_status(cmd, GIT_EDITOR='true') >+ if status != 0: >diff --git a/devel/git-review/files/patch-git__review_tests_test__git__review.py b/devel/git-review/files/patch-git__review_tests_test__git__review.py >new file mode 100644 >index 000000000000..0589d52dd2f7 >--- /dev/null >+++ b/devel/git-review/files/patch-git__review_tests_test__git__review.py >@@ -0,0 +1,59 @@ >+--- git_review/tests/test_git_review.py.orig 2019-04-08 20:07:09 UTC >++++ git_review/tests/test_git_review.py >+@@ -243,9 +243,11 @@ class GitReviewTestCase(tests.BaseGitReviewTestCase): >+ 'create conflict with master') >+ >+ exc = self.assertRaises(Exception, self._run_git_review) >+- self.assertIn( >+- "Errors running git rebase -p -i remotes/%s/master" % self._remote, >+- exc.args[0]) >++ rebased = ("Errors running git rebase --rebase-merges " >++ "-i remotes/%s/master" % self._remote in exc.args[0] or >++ "Errors running git rebase --preserve-merges " >++ "-i remotes/%s/master" % self._remote in exc.args[0]) >++ self.assertTrue(rebased) >+ self.assertIn("It is likely that your change has a merge conflict.", >+ exc.args[0]) >+ >+@@ -261,9 +263,11 @@ class GitReviewTestCase(tests.BaseGitReviewTestCase): >+ self._dir('test', 'new_test_file.txt')) >+ >+ review_res = self._run_git_review('-v') >+- self.assertIn( >+- "Running: git rebase -p -i remotes/%s/master" % self._remote, >+- review_res) >++ rebased = ("Running: git rebase --rebase-merges " >++ "-i remotes/%s/master" % self._remote in review_res or >++ "Running: git rebase --preserve-merges " >++ "-i remotes/%s/master" % self._remote in review_res) >++ self.assertTrue(rebased) >+ self.assertEqual(self._run_git('rev-parse', 'HEAD^1'), head_1) >+ >+ def test_uploads_with_nondefault_rebase(self): >+@@ -303,8 +307,10 @@ class GitReviewTestCase(tests.BaseGitReviewTestCase): >+ >+ review_res = self._run_git_review('-v') >+ # no rebase needed; if it breaks it would try to rebase to master >+- self.assertNotIn("Running: git rebase -p -i remotes/origin/master", >+- review_res) >++ self.assertNotIn("Running: git rebase --rebase-merges " >++ "-i remotes/origin/master", review_res) >++ self.assertNotIn("Running: git rebase --preserve-merges " >++ "-i remotes/origin/master", review_res) >+ # Don't need to query gerrit for the branch as the second half >+ # of this test will work only if the branch was correctly >+ # stored in gerrit >+@@ -321,8 +327,11 @@ class GitReviewTestCase(tests.BaseGitReviewTestCase): >+ self.assertEqual(change_id, new_change_id) >+ review_res = self._run_git_review('-v') >+ # caused the right thing to happen >+- self.assertIn("Running: git rebase -p -i remotes/origin/maint", >+- review_res) >++ rebased = ("Running: git rebase --rebase-merges " >++ "-i remotes/origin/maint" in review_res or >++ "Running: git rebase --preserve-merges " >++ "-i remotes/origin/maint" in review_res) >++ self.assertTrue(rebased) >+ >+ # track different branch than expected in changeset >+ branch = self._run_git('rev-parse', '--abbrev-ref', 'HEAD') >-- >2.34.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 262148
: 232040