mirror of
https://github.com/git/git
synced 2024-11-05 01:58:18 +00:00
f46ede661f
We leak various different string lists in the rerere code. Free those to plug them. Note that the `merge_rr` variable is intentionally being free'd with the `free_util` parameter set to 1. The `util` field is used there to store the IDs of every rerere item and thus needs to be freed, as well. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
59 lines
1.4 KiB
Bash
Executable file
59 lines
1.4 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='rerere run in a workdir'
|
|
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
|
|
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
|
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success SYMLINKS setup '
|
|
git config rerere.enabled true &&
|
|
>world &&
|
|
git add world &&
|
|
test_tick &&
|
|
git commit -m initial &&
|
|
|
|
echo hello >world &&
|
|
test_tick &&
|
|
git commit -a -m hello &&
|
|
|
|
git checkout -b side HEAD^ &&
|
|
echo goodbye >world &&
|
|
test_tick &&
|
|
git commit -a -m goodbye &&
|
|
|
|
git checkout main
|
|
'
|
|
|
|
test_expect_success SYMLINKS 'rerere in workdir' '
|
|
rm -rf .git/rr-cache &&
|
|
"$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" . work &&
|
|
(
|
|
cd work &&
|
|
test_must_fail git merge side &&
|
|
git rerere status >actual &&
|
|
echo world >expect &&
|
|
test_cmp expect actual
|
|
)
|
|
'
|
|
|
|
# This fails because we don't resolve relative symlink in mkdir_in_gitdir()
|
|
# For the purpose of helping contrib/workdir/git-new-workdir users, we do not
|
|
# have to support relative symlinks, but it might be nicer to make this work
|
|
# with a relative symbolic link someday.
|
|
test_expect_failure SYMLINKS 'rerere in workdir (relative)' '
|
|
rm -rf .git/rr-cache &&
|
|
"$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" . krow &&
|
|
(
|
|
cd krow &&
|
|
rm -f .git/rr-cache &&
|
|
ln -s ../.git/rr-cache .git/rr-cache &&
|
|
test_must_fail git merge side &&
|
|
git rerere status >actual &&
|
|
echo world >expect &&
|
|
test_cmp expect actual
|
|
)
|
|
'
|
|
|
|
test_done
|