Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-11-24 23:44:46 +0300
committerJunio C Hamano <gitster@pobox.com>2010-11-24 23:44:46 +0300
commit2f9d2e22cb553d26e355e63171678a848170dcf8 (patch)
tree9b2b237fb9cc9beee2c602ce3c7822b0b456fcb8
parenteeae6d754627343cfa9f1c72c5c00a3d949e9302 (diff)
parent6355e505bacf0a12a5de77bcd0c1198e74ad340b (diff)
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.c2
-rwxr-xr-xt/t3506-cherry-pick-ff.sh10
2 files changed, 11 insertions, 1 deletions
diff --git a/builtin/revert.c b/builtin/revert.c
index 4b47ace36b..57b51e4a0e 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 e17ae712b1..51ca391e47 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