Merge "-F/--force-rebase has no effect if rebase is disabled by config"
This commit is contained in:
commit
b5c52cddec
@ -1072,12 +1072,14 @@ def _main():
|
||||
help="Regenerate Change-id before submitting")
|
||||
parser.add_argument("-r", "--remote", dest="remote",
|
||||
help="git remote to use for gerrit")
|
||||
parser.add_argument("-R", "--no-rebase", dest="rebase",
|
||||
action="store_false",
|
||||
help="Don't rebase changes before submitting.")
|
||||
parser.add_argument("-F", "--force-rebase", dest="force_rebase",
|
||||
action="store_true",
|
||||
help="Force rebase even when not needed.")
|
||||
|
||||
rebase_group = parser.add_mutually_exclusive_group()
|
||||
rebase_group.add_argument("-R", "--no-rebase", dest="rebase",
|
||||
action="store_false",
|
||||
help="Don't rebase changes before submitting.")
|
||||
rebase_group.add_argument("-F", "--force-rebase", dest="force_rebase",
|
||||
action="store_true",
|
||||
help="Force rebase even when not needed.")
|
||||
|
||||
fetch = parser.add_mutually_exclusive_group()
|
||||
fetch.set_defaults(download=False, compare=False, cherrypickcommit=False,
|
||||
@ -1214,7 +1216,7 @@ def _main():
|
||||
finish_branch(branch)
|
||||
return
|
||||
|
||||
if options.rebase:
|
||||
if options.rebase or options.force_rebase:
|
||||
if not rebase_changes(branch, remote):
|
||||
sys.exit(1)
|
||||
if not options.force_rebase and not undo_rebase():
|
||||
|
@ -260,6 +260,33 @@ class GitReviewTestCase(tests.BaseGitReviewTestCase):
|
||||
self.assertNotIn('project: change3, abandoned', result)
|
||||
self.assertNotIn('project2:', result)
|
||||
|
||||
def _test_git_review_F(self, rebase):
|
||||
self._run_git_review('-s')
|
||||
|
||||
# Populate repo
|
||||
self._simple_change('create file', 'test commit message')
|
||||
change1 = self._run_git('rev-parse', 'HEAD')
|
||||
self._run_git_review()
|
||||
self._run_gerrit_cli('review', change1, '--code-review=+2', '--submit')
|
||||
self._run_git('reset', '--hard', 'HEAD^')
|
||||
|
||||
# Review with force_rebase
|
||||
self._run_git('config', 'gitreview.rebase', rebase)
|
||||
self._simple_change('create file2', 'test commit message 2',
|
||||
self._dir('test', 'test_file2.txt'))
|
||||
self._run_git_review('-F')
|
||||
head_1 = self._run_git('rev-parse', 'HEAD^')
|
||||
self.assertEqual(change1, head_1)
|
||||
|
||||
def test_git_review_F(self):
|
||||
self._test_git_review_F('1')
|
||||
|
||||
def test_git_review_F_norebase(self):
|
||||
self._test_git_review_F('0')
|
||||
|
||||
def test_git_review_F_R(self):
|
||||
self.assertRaises(Exception, self._run_git_review, '-F', '-R')
|
||||
|
||||
|
||||
class HttpGitReviewTestCase(tests.HttpMixin, GitReviewTestCase):
|
||||
"""Class for the git-review tests over HTTP(S)."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user