diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-11-24 12:44:46 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-11-24 12:44:46 -0800 |
commit | 2f9d2e22cb553d26e355e63171678a848170dcf8 (patch) | |
tree | 9b2b237fb9cc9beee2c602ce3c7822b0b456fcb8 | |
parent | eeae6d754627343cfa9f1c72c5c00a3d949e9302 (diff) | |
parent | 6355e505bacf0a12a5de77bcd0c1198e74ad340b (diff) | |
download | git-2f9d2e22cb553d26e355e63171678a848170dcf8.tar.gz git-2f9d2e22cb553d26e355e63171678a848170dcf8.tar.xz |
Merge branch 'bc/fix-cherry-pick-root' into maint
* bc/fix-cherry-pick-root:
builtin/revert.c: don't dereference a NULL pointer
-rw-r--r-- | builtin/revert.c | 2 | ||||
-rwxr-xr-x | t/t3506-cherry-pick-ff.sh | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/builtin/revert.c b/builtin/revert.c index 4b47ace36..57b51e4a0 100644 --- a/builtin/revert.c +++ b/builtin/revert.c @@ -442,7 +442,7 @@ static int do_pick_commit(void) else parent = commit->parents->item; - if (allow_ff && !hashcmp(parent->object.sha1, head)) + if (allow_ff && parent && !hashcmp(parent->object.sha1, head)) return fast_forward_to(commit->object.sha1, head); if (parent && parse_commit(parent) < 0) diff --git a/t/t3506-cherry-pick-ff.sh b/t/t3506-cherry-pick-ff.sh index e17ae712b..51ca391e4 100755 --- a/t/t3506-cherry-pick-ff.sh +++ b/t/t3506-cherry-pick-ff.sh @@ -95,4 +95,14 @@ test_expect_success 'cherry pick a merge relative to nonexistent parent with --f test_must_fail git cherry-pick --ff -m 3 C ' +test_expect_success 'cherry pick a root commit with --ff' ' + git reset --hard first -- && + git rm file1 && + echo first >file2 && + git add file2 && + git commit --amend -m "file2" && + git cherry-pick --ff first && + test "$(git rev-parse --verify HEAD)" = "1df192cd8bc58a2b275d842cede4d221ad9000d1" +' + test_done |