diff options
| -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 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 | 
