mirror of
https://github.com/git/git.git
synced 2024-11-01 06:47:52 +01:00
am --skip: support skipping while on unborn branch
When git am --skip is run, git am will copy HEAD's tree entries to the index with "git reset HEAD". However, on an unborn branch, HEAD does not point to a tree, so "git reset HEAD" will fail. Fix this by treating HEAD as en empty tree when we are on an unborn branch. Signed-off-by: Paul Tan <pyokagan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
2c970c9ec3
commit
f8da6801e2
2 changed files with 11 additions and 3 deletions
|
@ -499,9 +499,7 @@ then
|
||||||
git read-tree --reset -u $head_tree $head_tree &&
|
git read-tree --reset -u $head_tree $head_tree &&
|
||||||
index_tree=$(git write-tree) &&
|
index_tree=$(git write-tree) &&
|
||||||
git read-tree -m -u $index_tree $head_tree
|
git read-tree -m -u $index_tree $head_tree
|
||||||
orig_head=$(cat "$GIT_DIR/ORIG_HEAD")
|
git read-tree $head_tree
|
||||||
git reset HEAD
|
|
||||||
git update-ref ORIG_HEAD $orig_head
|
|
||||||
;;
|
;;
|
||||||
,t)
|
,t)
|
||||||
if test -f "$dotest/rebasing"
|
if test -f "$dotest/rebasing"
|
||||||
|
|
|
@ -92,4 +92,14 @@ test_expect_success 'am -3 stops on conflict on unborn branch' '
|
||||||
test 4 = "$(cat otherfile-4)"
|
test 4 = "$(cat otherfile-4)"
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'am -3 --skip clears index on unborn branch' '
|
||||||
|
test_path_is_dir .git/rebase-apply &&
|
||||||
|
echo tmpfile >tmpfile &&
|
||||||
|
git add tmpfile &&
|
||||||
|
git am --skip &&
|
||||||
|
test -z "$(git ls-files)" &&
|
||||||
|
test_path_is_missing otherfile-4 &&
|
||||||
|
test_path_is_missing tmpfile
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in a new issue