Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package git-review for openSUSE:Factory checked in at 2021-12-08 22:09:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/git-review (Old) and /work/SRC/openSUSE:Factory/.git-review.new.31177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "git-review" Wed Dec 8 22:09:29 2021 rev:16 rq:936498 version:2.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/git-review/git-review.changes 2021-12-05 22:47:18.805407077 +0100 +++ /work/SRC/openSUSE:Factory/.git-review.new.31177/git-review.changes 2021-12-08 22:10:45.962913542 +0100 @@ -1,0 +2,21 @@ +Tue Dec 7 21:06:05 UTC 2021 - Matej Cepl <mc...@suse.com> + +- Update to 2.2.0: + - When checking for unstaged or uncommitted changes to avoid + performing a test rebase, unstaged and uncommitted changes in + Git submodules are now ignored since those won???t be rebased + anyway. + - git-review now handles the Git core.hooksPath configuration + option correctly. Thus, it installs the commit-msg hook + into the core.hooksPath directory, if that option is + set. Otherwise, it continues to install the hook into + .git/hooks, relative to the root of the checkout. + - With Git 2.18.0 and later, the --rebase-merges (-r) option + will be used in place of the deprecated --preserve-merges + (-p) option. This fixes a critical error when git-review is + used with Git versions 2.34.0 onward, where the old option is + no longer available. +- Remove unnecessary + 7182166ec00ad3645821435d72c5424b4629165f.patch + +------------------------------------------------------------------- Old: ---- 7182166ec00ad3645821435d72c5424b4629165f.patch git-review-2.1.0.tar.gz New: ---- git-review-2.2.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ git-review.spec ++++++ --- /var/tmp/diff_new_pack.ry0uTn/_old 2021-12-08 22:10:46.394913745 +0100 +++ /var/tmp/diff_new_pack.ry0uTn/_new 2021-12-08 22:10:46.398913747 +0100 @@ -17,14 +17,13 @@ Name: git-review -Version: 2.1.0 +Version: 2.2.0 Release: 0 Summary: Tool to submit code to Gerrit License: Apache-2.0 Group: Development/Languages/Python URL: https://git.openstack.org/cgit/openstack-infra/git-review Source: https://files.pythonhosted.org/packages/source/g/%{name}/%{name}-%{version}.tar.gz -Patch1: https://opendev.org/opendev/git-review/commit/7182166ec00ad3645821435d72c5424b4629165f.patch BuildRequires: fdupes # Note that this package is intentionally not using singlespec because # it is not a library but a plain CLI tool, and it doesn't make sense to @@ -56,6 +55,7 @@ %install %python3_install +%fdupes %{buildroot}%{python3_sitelib} %check # Can't be executed because it fetches java from web and launches own gerrit ++++++ git-review-2.1.0.tar.gz -> git-review-2.2.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/.zuul.yaml new/git-review-2.2.0/.zuul.yaml --- old/git-review-2.1.0/.zuul.yaml 2021-04-23 23:09:54.000000000 +0200 +++ new/git-review-2.2.0/.zuul.yaml 2021-11-24 03:35:50.000000000 +0100 @@ -5,16 +5,16 @@ - publish-opendev-tox-docs check: jobs: &jobs - - build-python-release: - nodeset: ubuntu-focal + - build-python-release - tox-linters - tox-py35: nodeset: ubuntu-xenial - - tox-py36 - - tox-py37 + - tox-py36: + nodeset: ubuntu-bionic + - tox-py37: + nodeset: ubuntu-bionic - tox-py38 - - tox-py39: - nodeset: ubuntu-focal + - tox-py39 gate: jobs: *jobs promote: @@ -22,5 +22,4 @@ - opendev-promote-python release: jobs: - - opendev-release-python: - nodeset: ubuntu-focal + - opendev-release-python diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/AUTHORS new/git-review-2.2.0/AUTHORS --- old/git-review-2.1.0/AUTHORS 2021-04-23 23:11:37.000000000 +0200 +++ new/git-review-2.2.0/AUTHORS 2021-11-24 03:37:33.000000000 +0100 @@ -34,6 +34,7 @@ Doug Hellmann <d...@doughellmann.com> Eric Harney <ehar...@redhat.com> Fabio Porcedda <fabio.porce...@gmail.com> +Florian Haas <flor...@citynetwork.eu> Frederic Lepied <frederic.lep...@enovance.com> Han-Wen Nienhuys <han...@google.com> Hannu Hartikainen <hannu.hartikai...@gmail.com> @@ -46,6 +47,7 @@ James E. Blair <jebl...@linux.vnet.ibm.com> Jan Kundr??t <jan.kund...@cesnet.cz> Jason Axelson <bostonvaul...@gmail.com> +Jens Harbott <j.harb...@x-ion.de> Jeremy Stanley <fu...@yuggoth.org> John Vandenberg <jay...@gmail.com> Julien Danjou <jul...@danjou.info> @@ -73,6 +75,7 @@ Paul Belanger <paul.belan...@polybeacon.com> Pavel Sedl??k <psed...@redhat.com> Pete Zaitcev <zait...@kotori.zaitcev.us> +Pierre Riteau <pie...@stackhpc.com> Roger Luethi <r...@patchworkscience.org> Roman Gorshunov <roman.gorshu...@att.com> Sachi King <nak...@nakato.io> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/ChangeLog new/git-review-2.2.0/ChangeLog --- old/git-review-2.1.0/ChangeLog 2021-04-23 23:11:37.000000000 +0200 +++ new/git-review-2.2.0/ChangeLog 2021-11-24 03:37:33.000000000 +0100 @@ -1,6 +1,16 @@ CHANGES ======= +2.2.0 +----- + +* Add release note for the rebase merge handling fix +* Fix use of removed --preserve-merges option +* Ignore unstaged/uncommitted submodule changes +* Doc updates for Git "core.hooksPath" option support +* Support the Git "core.hooksPath" option when dealing with hook scripts +* Fix nodeset selections for zuul jobs + 2.1.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/PKG-INFO new/git-review-2.2.0/PKG-INFO --- old/git-review-2.1.0/PKG-INFO 2021-04-23 23:11:38.093790800 +0200 +++ new/git-review-2.2.0/PKG-INFO 2021-11-24 03:37:33.261706400 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: git-review -Version: 2.1.0 +Version: 2.2.0 Summary: Tool to submit code to Gerrit Home-page: http://docs.opendev.org/opendev/git-review Author: OpenDev Contributors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/doc/source/installation.rst new/git-review-2.2.0/doc/source/installation.rst --- old/git-review-2.1.0/doc/source/installation.rst 2021-04-23 23:09:54.000000000 +0200 +++ new/git-review-2.2.0/doc/source/installation.rst 2021-11-24 03:35:50.000000000 +0100 @@ -89,9 +89,13 @@ git-review has a custom hook mechanism to run a script before certain actions. This is done in the same spirit as the classic hooks in git. -There are two types of hooks, a global one which is stored in -``~/.config/git-review/hooks/`` and one local to the repository stored in -``.git/hooks/`` with the other git hook scripts. +There are two types of hooks: + +* a global one which is stored in ``~/.config/git-review/hooks/``, + +* and one local to the repository, which is stored with the other git + hook scripts. Normally that's the ``.git/hooks/`` directory in your + checkout. **The script needs be executable before getting executed** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/git_review/cmd.py new/git-review-2.2.0/git_review/cmd.py --- old/git-review-2.1.0/git_review/cmd.py 2021-04-23 23:09:54.000000000 +0200 +++ new/git-review-2.2.0/git_review/cmd.py 2021-11-24 03:35:50.000000000 +0100 @@ -247,7 +247,7 @@ script_file = "%s-review" % (action) (top_dir, git_dir) = git_directories() paths = [os.path.join(CONFIGDIR, "hooks", script_file), - os.path.join(git_dir, "hooks", script_file)] + os.path.join(git_get_hooks_path(top_dir, git_dir), script_file)] for fpath in paths: if os.path.isfile(fpath) and os.access(fpath, os.X_OK): status, output = run_command_status(fpath) @@ -285,7 +285,26 @@ raise +def git_get_hooks_path(top_dir, git_dir): + """Get the path where we need to store and retrieve Git hooks. + + Normally hooks go into .git/hooks, but users can override with the + core.hooksPath option. This can either be an absolute path, in + which case we use it as-is, or a relative path, in which case we + must interpret it as relative to top_dir. + """ + hook_dir = os.path.join(git_dir, "hooks") + hooks_path_option = git_config_get_value('core', 'hooksPath') + if hooks_path_option: + if os.path.isabs(hooks_path_option): + hook_dir = hooks_path_option + else: + hook_dir = os.path.join(top_dir, hooks_path_option) + return hook_dir + + class Config(object): + """Expose as dictionary configuration options.""" def __init__(self, config_file=None): @@ -365,6 +384,9 @@ run_command_exc(CannotInstallHook, *cmd) # If there are submodules, the hook needs to be installed into # each of them. + # Here, we don't check for any nonstandard hooks path, because + # it should be safe to assume that very few users are inclined + # to set the core.hooksPath option in a submodule checkout. run_command_exc( CannotInstallHook, "git", "submodule", "foreach", @@ -866,13 +888,13 @@ # Either the rebase will fail with a similar message, or if the user # has turned on rebase.autostash then the subsequent reset will # silently discard those changes. - cmd = "git diff --quiet" + cmd = "git diff --ignore-submodules --quiet" (status, output) = run_command_status(cmd) if status != 0: printwrap("You have unstaged changes. Please commit or stash them " "first, and then try again.") sys.exit(1) - cmd = "git diff --cached --quiet" + cmd = "git diff --cached --ignore-submodules --quiet" (status, output) = run_command_status(cmd) if status != 0: printwrap("You have uncommitted changes. Please commit or stash them " @@ -887,10 +909,25 @@ "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: @@ -1686,7 +1723,8 @@ if options.custom_script: run_custom_script("pre") - hook_file = os.path.join(git_dir, "hooks", "commit-msg") + hook_dir = git_get_hooks_path(top_dir, git_dir) + hook_file = os.path.join(hook_dir, "commit-msg") have_hook = os.path.exists(hook_file) and os.access(hook_file, os.X_OK) if not have_hook: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/git_review/tests/__init__.py new/git-review-2.2.0/git_review/tests/__init__.py --- old/git-review-2.1.0/git_review/tests/__init__.py 2021-04-23 23:09:54.000000000 +0200 +++ new/git-review-2.2.0/git_review/tests/__init__.py 2021-11-24 03:35:50.000000000 +0100 @@ -291,6 +291,18 @@ '--work-tree=' + self._dir('test'), command, *args) + def _run_git_sub(self, command, *args): + """Run git command using submodule of test git directory.""" + if command == 'init': + utils.run_git('init', self._dir('test', 'sub')) + self._simple_change_sub('submodule content', 'initial commit') + utils.run_git('submodule', 'add', os.path.join('.', 'sub'), + chdir=self._dir('test')) + return self._run_git('commit', '-m', 'add submodule') + return utils.run_git('--git-dir=' + self._dir('test', 'sub', '.git'), + '--work-tree=' + self._dir('test', 'sub'), + command, *args) + def _run_gerrit(self, ssh_addr, ssh_port, http_addr, http_port): # create a copy of site dir if os.path.exists(self.site_dir): @@ -344,6 +356,26 @@ message = self._run_git('log', '-1', '--format=%s\n\n%b') self._run_git('commit', '--amend', '-m', message) + def _unstaged_change_sub(self, change_text, file_=None): + """Helper method to create small submodule changes and not stage.""" + if file_ is None: + file_ = self._dir('test', 'sub', 'test_file.txt') + utils.write_to_file(file_, ''.encode()) + self._run_git_sub('add', file_) + utils.write_to_file(file_, change_text.encode()) + + def _uncommitted_change_sub(self, change_text, file_=None): + """Helper method to create small submodule changes and not commit.""" + if file_ is None: + file_ = self._dir('test', 'sub', 'test_file.txt') + self._unstaged_change_sub(change_text, file_) + self._run_git_sub('add', file_) + + def _simple_change_sub(self, change_text, commit_message, file_=None): + """Helper method to create small submodule changes and commit them.""" + self._uncommitted_change_sub(change_text, file_) + self._run_git_sub('commit', '-m', commit_message) + def _configure_ssh(self, ssh_addr, ssh_port): """Setup ssh and scp to run with special options.""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/git_review/tests/test_git_review.py new/git-review-2.2.0/git_review/tests/test_git_review.py --- old/git-review-2.1.0/git_review/tests/test_git_review.py 2021-04-23 23:09:54.000000000 +0200 +++ new/git-review-2.2.0/git_review/tests/test_git_review.py 2021-11-24 03:35:50.000000000 +0100 @@ -18,6 +18,7 @@ import json import os import shutil +import tempfile import testtools from git_review import tests @@ -102,6 +103,53 @@ self._run_git_review( '-s', chdir=os.path.join(self.test_dir, 'subdirectory')) + def test_git_review_s_without_core_hooks_path_option(self): + """Test whether git-review -s correctly creates the commit-msg hook, + with the Git core.hooksPath option unset. + """ + hooks_subdir = ".git/hooks" + self.reset_remote() + + # There really isn't a good way to ensure that + # "core.hooksPath" option is presently unset. "git config + # --unset" is not idempotent; if you try to unset a config + # option that isn't defined it fails with an exit code of + # 5. Running "git config core.hooksPath" to retrieve the value + # returns 1 if unset, but we can't use self.assertRaises here + # either because run_cmd raises a generic Exception and that's + # too broad. So instead, we don't check core.hooksPath at all + # here, and instead rely on the next two tests to unset the + # option after they've set it. + self._run_git_review('-s') + self.assertTrue(os.path.exists(os.path.join(self.test_dir, + hooks_subdir, + 'commit-msg'))) + + def test_git_review_s_with_core_hooks_path_option_relative(self): + """Test whether git-review -s correctly creates the commit-msg hook, + with the Git core.hooksPath option set to a relative path. + """ + hooks_subdir = "foo" + self.reset_remote() + self._run_git("config", "core.hooksPath", hooks_subdir) + self._run_git_review('-s') + self.assertTrue(os.path.exists(os.path.join(self.test_dir, + hooks_subdir, + 'commit-msg'))) + self._run_git("config", "--unset", "core.hooksPath") + + def test_git_review_s_with_core_hooks_path_option_absolute(self): + """Test whether git-review -s correctly creates the commit-msg hook, + with the Git core.hooksPath option set to an absolute path. + """ + self.reset_remote() + with tempfile.TemporaryDirectory() as hooks_dir: + self._run_git("config", "core.hooksPath", hooks_dir) + self._run_git_review('-s') + self.assertTrue(os.path.exists(os.path.join(hooks_dir, + 'commit-msg'))) + self._run_git("config", "--unset", "core.hooksPath") + def test_git_review_d(self): """Test git-review -d.""" self._run_git_review('-s') @@ -238,6 +286,22 @@ exc = self.assertRaises(Exception, self._run_git_review) self.assertIn("You have uncommitted changes. Please", exc.args[0]) + def test_ignore_unstaged_submodule_changes(self): + """Test message displayed when unstaged changes are present.""" + self._run_git_review('-s') + self._run_git('checkout', '-b', 'test_branch') + self._run_git_sub('init') + self._unstaged_change_sub(change_text='simple message') + self._run_git_review() + + def test_ignore_uncommitted_submodule_changes(self): + """Test message displayed when staged changes are present.""" + self._run_git_review('-s') + self._run_git('checkout', '-b', 'test_branch') + self._run_git_sub('init') + self._uncommitted_change_sub(change_text='simple message') + self._run_git_review() + def test_rebase_no_remote_branch_msg(self): """Test message displayed where no remote branch exists.""" self._run_git_review('-s') @@ -259,9 +323,11 @@ '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]) @@ -277,9 +343,11 @@ 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): @@ -319,8 +387,10 @@ 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 @@ -337,8 +407,11 @@ 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') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/git_review.egg-info/PKG-INFO new/git-review-2.2.0/git_review.egg-info/PKG-INFO --- old/git-review-2.1.0/git_review.egg-info/PKG-INFO 2021-04-23 23:11:37.000000000 +0200 +++ new/git-review-2.2.0/git_review.egg-info/PKG-INFO 2021-11-24 03:37:33.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: git-review -Version: 2.1.0 +Version: 2.2.0 Summary: Tool to submit code to Gerrit Home-page: http://docs.opendev.org/opendev/git-review Author: OpenDev Contributors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/git_review.egg-info/SOURCES.txt new/git-review-2.2.0/git_review.egg-info/SOURCES.txt --- old/git-review-2.1.0/git_review.egg-info/SOURCES.txt 2021-04-23 23:11:38.000000000 +0200 +++ new/git-review-2.2.0/git_review.egg-info/SOURCES.txt 2021-11-24 03:37:33.000000000 +0100 @@ -28,7 +28,6 @@ git_review.egg-info/dependency_links.txt git_review.egg-info/entry_points.txt git_review.egg-info/not-zip-safe -git_review.egg-info/pbr.json git_review.egg-info/requires.txt git_review.egg-info/top_level.txt git_review/tests/__init__.py @@ -47,9 +46,12 @@ releasenotes/notes/fix-usepushurl-c4a234689d808ece.yaml releasenotes/notes/git-credentials-bytes-6fcecd405dc4ed29.yaml releasenotes/notes/ignore-topic-for-master-patches-9ba01c0762d3df65.yaml +releasenotes/notes/ignore-unstaged-uncommitted-submodule-changes-99dbf054f5617d08.yaml releasenotes/notes/missed-notes-f903719767e0a0ce.yaml releasenotes/notes/preserve-local-edits-on-download-0f11c676e5516d9f.yaml releasenotes/notes/push-no-follow-tags-3f366ecee85b508d.yaml releasenotes/notes/refuse-unstaged-changes-61600bd33adf3a45.yaml releasenotes/notes/remove-automatic-branch-naming-8e3e2f6487637b86.yaml +releasenotes/notes/support-core-hooks-path-ea5402d5d6204f70.yaml +releasenotes/notes/use-rebase-merges-2550c9573cfbf39a.yaml releasenotes/notes/user-notifications-0276f6c14d119225.yaml \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/git_review.egg-info/pbr.json new/git-review-2.2.0/git_review.egg-info/pbr.json --- old/git-review-2.1.0/git_review.egg-info/pbr.json 2021-04-23 23:11:37.000000000 +0200 +++ new/git-review-2.2.0/git_review.egg-info/pbr.json 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -{"git_version": "afda8ec", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/releasenotes/notes/ignore-unstaged-uncommitted-submodule-changes-99dbf054f5617d08.yaml new/git-review-2.2.0/releasenotes/notes/ignore-unstaged-uncommitted-submodule-changes-99dbf054f5617d08.yaml --- old/git-review-2.1.0/releasenotes/notes/ignore-unstaged-uncommitted-submodule-changes-99dbf054f5617d08.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/git-review-2.2.0/releasenotes/notes/ignore-unstaged-uncommitted-submodule-changes-99dbf054f5617d08.yaml 2021-11-24 03:35:50.000000000 +0100 @@ -0,0 +1,6 @@ +--- +fixes: + - | + When checking for unstaged or uncommitted changes to avoid performing a + test rebase, unstaged and uncommitted changes in Git submodules are now + ignored since those won't be rebased anyway. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/releasenotes/notes/support-core-hooks-path-ea5402d5d6204f70.yaml new/git-review-2.2.0/releasenotes/notes/support-core-hooks-path-ea5402d5d6204f70.yaml --- old/git-review-2.1.0/releasenotes/notes/support-core-hooks-path-ea5402d5d6204f70.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/git-review-2.2.0/releasenotes/notes/support-core-hooks-path-ea5402d5d6204f70.yaml 2021-11-24 03:35:50.000000000 +0100 @@ -0,0 +1,8 @@ +--- +fixes: + - | + git-review now handles the Git ``core.hooksPath`` configuration + option correctly. Thus, it installs the ``commit-msg`` hook into + the ``core.hooksPath`` directory, if that option is + set. Otherwise, it continues to install the hook into + ``.git/hooks``, relative to the root of the checkout. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-review-2.1.0/releasenotes/notes/use-rebase-merges-2550c9573cfbf39a.yaml new/git-review-2.2.0/releasenotes/notes/use-rebase-merges-2550c9573cfbf39a.yaml --- old/git-review-2.1.0/releasenotes/notes/use-rebase-merges-2550c9573cfbf39a.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/git-review-2.2.0/releasenotes/notes/use-rebase-merges-2550c9573cfbf39a.yaml 2021-11-24 03:35:50.000000000 +0100 @@ -0,0 +1,7 @@ +--- +fixes: + - | + With Git 2.18.0 and later, the ``--rebase-merges`` (``-r``) option will + be used in place of the deprecated ``--preserve-merges`` (``-p``) + option. This fixes a critical error when git-review is used with Git + versions 2.34.0 onward, where the old option is no longer available.