diff options
author | Phillip Wood <phillip.wood@dunelm.org.uk> | 2018-03-14 11:11:27 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-03-15 12:47:20 -0700 |
commit | c158dcfc1476bcf6842ba68fc538705323b0e740 (patch) | |
tree | 6c674144f00e5ab5ab1c357c503a07f62a243e23 | |
parent | 7bad57bb3f0554c0d144288715e6a8fcdda76a64 (diff) | |
download | git-pw/rebase-signoff-with-implicit-i.tar.gz |
rebase --root -k: fix when root commit is emptypw/rebase-signoff-with-implicit-i
When the root commit was empty it was being pruned by the
--cherry-pick option passed to rev-parse. This is because when --onto
is omitted rebase creates an empty commit (which it later amends) for
the new root commit.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | git-rebase--interactive.sh | 7 | ||||
-rwxr-xr-x | git-rebase.sh | 1 | ||||
-rwxr-xr-x | t/t3428-rebase-signoff.sh | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 104de328ee..7f90a14309 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -900,7 +900,12 @@ then revisions=$upstream...$orig_head shortrevisions=$shortupstream..$shorthead else - revisions=$onto...$orig_head + if test -n "$squash_onto" + then + revisions=$orig_head + else + revisions=$onto...$orig_head + fi shortrevisions=$shorthead fi if test t != "$preserve_merges" diff --git a/git-rebase.sh b/git-rebase.sh index e708a4fc2c..1399f35329 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -62,6 +62,7 @@ $(gettext 'Resolve all conflicts manually, mark them as resolved with You can instead skip this commit: run "git rebase --skip". To abort and get back to the state before "git rebase", run "git rebase --abort".') " +squash_onto= unset onto unset restrict_revision cmd= diff --git a/t/t3428-rebase-signoff.sh b/t/t3428-rebase-signoff.sh index 2ff7f534e3..90ca6636d5 100755 --- a/t/t3428-rebase-signoff.sh +++ b/t/t3428-rebase-signoff.sh @@ -59,7 +59,7 @@ test_expect_success 'rebase --exec --signoff adds a sign-off line' ' test_cmp expected-signed actual ' -test_expect_failure 'rebase --root --signoff adds a sign-off line' ' +test_expect_success 'rebase --root --signoff adds a sign-off line' ' git commit --amend -m "first" && git rebase --root --keep-empty --signoff && git cat-file commit HEAD^ | sed -e "1,/^\$/d" >actual && |