[PATCH 3/3] t4301: add a test case involving a rename, type change & modification
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Aug 19, 2022, 06:57 UTC
- Message-ID
- <3b4ed8bb1bb615277ee51a7b2af5fc53bae0a6e4.1660892256.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1327.git.1660892256.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>
This is a reduced version of a real-world scenario that triggered the work on the original file names.
Let's make sure that Git does not regress in that scenario.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- t/t4301-merge-tree-write-tree.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+)
diff --git a/t/t4301-merge-tree-write-tree.sh b/t/t4301-merge-tree-write-tree.sh index e08452a8531..3c41ade0a47 100755 --- a/t/t4301-merge-tree-write-tree.sh +++ b/t/t4301-merge-tree-write-tree.sh @@ -137,6 +137,38 @@ test_expect_success 'test conflict notices and such' ' test_cmp expect actual ' +test_expect_success SYMLINKS 'original file names and type changes' ' + git switch --detach side1^ && + test_commit modified whatever && + + git switch --detach HEAD^ && + git mv whatever wherever && + ln -s wherever whatever && + git add whatever && + test_tick && + git commit -m symlink && + git tag symlink && + + test_expect_code 1 \ + git merge-tree -z modified symlink >out && + printf "\\n" >>out && + anonymize_hash out >actual && + + q_to_tab <<-\EOF | lf_to_nul >expect && + HASH + 120000 HASH 3Qwhatever + 100644 HASH 1Qwhatever + 100644 HASH 2Qwhatever + + EOF + + q_to_nul <<-EOF >>expect && + 2QwhateverQwhatever~modifiedQCONFLICT (distinct modes)QCONFLICT (distinct types): whatever had different types on each side; renamed one of them so each can be recorded somewhere. + Q + EOF + test_cmp expect actual +' + for opt in $(git merge-tree --git-completion-helper-all) do if test $opt = "--trivial-merge" || test $opt = "--write-tree"
-- gitgitgadget