diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2010-05-31 20:43:35 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-06-11 08:44:13 -0700 |
commit | cddb42d2c58a9de9b2b5ef68817778e7afaace3e (patch) | |
tree | a84c9d248cc0af010f499a815a6d9a38997d0e85 /t/t3404-rebase-interactive.sh | |
parent | 2543d9b609d158f611e317738644e67cacac6b9a (diff) | |
download | git-cddb42d2c58a9de9b2b5ef68817778e7afaace3e.tar.gz |
rebase -i -p: document shortcomings
The rebase --preserve-merges facility presents a list of commits
in its instruction sheet and uses a separate table to keep
track of their parents. Unfortunately, in practice this means
that with -p after most attempts to rearrange patches, some
commits have the "wrong" parent and the resulting history is
rarely what the caller expected.
Yes, it would be nice to fix that. But first, add a warning to the
manual to help the uninitiated understand what is going on.
Reported-by: Jiří Paleček <jpalecek@web.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3404-rebase-interactive.sh')
-rwxr-xr-x | t/t3404-rebase-interactive.sh | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index f20ea38411..6668907ec5 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -181,6 +181,12 @@ test_expect_success '-p handles "no changes" gracefully' ' test $HEAD = $(git rev-parse HEAD) ' +test_expect_failure 'exchange two commits with -p' ' + FAKE_LINES="2 1" git rebase -i -p HEAD~2 && + test H = $(git cat-file commit HEAD^ | sed -ne \$p) && + test G = $(git cat-file commit HEAD | sed -ne \$p) +' + test_expect_success 'preserve merges with -p' ' git checkout -b to-be-preserved master^ && : > unrelated-file && |