mirror of
https://github.com/git/git
synced 2024-10-28 19:25:47 +00: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 &&
|
||||
index_tree=$(git write-tree) &&
|
||||
git read-tree -m -u $index_tree $head_tree
|
||||
orig_head=$(cat "$GIT_DIR/ORIG_HEAD")
|
||||
git reset HEAD
|
||||
git update-ref ORIG_HEAD $orig_head
|
||||
git read-tree $head_tree
|
||||
;;
|
||||
,t)
|
||||
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_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
|
||||
|
|
Loading…
Reference in a new issue