|
|
|
@ -674,7 +674,6 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
@@ -674,7 +674,6 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
|
|
|
|
|
rm c && |
|
|
|
|
ln -s d c && |
|
|
|
|
cat >expect <<-EOF && |
|
|
|
|
b |
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
c |
|
|
|
@ -710,7 +709,6 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
@@ -710,7 +709,6 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
|
|
|
|
|
# Deleted symlinks |
|
|
|
|
rm -f c && |
|
|
|
|
cat >expect <<-EOF && |
|
|
|
|
b |
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
EOF |
|
|
|
@ -723,6 +721,71 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
@@ -723,6 +721,71 @@ test_expect_success SYMLINKS 'difftool --dir-diff handles modified symlinks' '
|
|
|
|
|
test_cmp expect actual |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success SYMLINKS 'difftool --dir-diff writes symlinks as raw text' ' |
|
|
|
|
# Start out on a branch called "branch-init". |
|
|
|
|
git init -b branch-init symlink-files && |
|
|
|
|
( |
|
|
|
|
cd symlink-files && |
|
|
|
|
# This test ensures that symlinks are written as raw text. |
|
|
|
|
# The "cat" tools output link and file contents. |
|
|
|
|
git config difftool.cat-left-link.cmd "cat \"\$LOCAL/link\"" && |
|
|
|
|
git config difftool.cat-left-a.cmd "cat \"\$LOCAL/file-a\"" && |
|
|
|
|
git config difftool.cat-right-link.cmd "cat \"\$REMOTE/link\"" && |
|
|
|
|
git config difftool.cat-right-b.cmd "cat \"\$REMOTE/file-b\"" && |
|
|
|
|
|
|
|
|
|
# Record the empty initial state so that we can come back here |
|
|
|
|
# later and not have to consider the any cases where difftool |
|
|
|
|
# will create symlinks back into the worktree. |
|
|
|
|
test_tick && |
|
|
|
|
git commit --allow-empty -m init && |
|
|
|
|
|
|
|
|
|
# Create a file called "file-a" with a symlink pointing to it. |
|
|
|
|
git switch -c branch-a && |
|
|
|
|
echo a >file-a && |
|
|
|
|
ln -s file-a link && |
|
|
|
|
git add file-a link && |
|
|
|
|
test_tick && |
|
|
|
|
git commit -m link-to-file-a && |
|
|
|
|
|
|
|
|
|
# Create a file called "file-b" and point the symlink to it. |
|
|
|
|
git switch -c branch-b && |
|
|
|
|
echo b >file-b && |
|
|
|
|
rm link && |
|
|
|
|
ln -s file-b link && |
|
|
|
|
git add file-b link && |
|
|
|
|
git rm file-a && |
|
|
|
|
test_tick && |
|
|
|
|
git commit -m link-to-file-b && |
|
|
|
|
|
|
|
|
|
# Checkout the initial branch so that the --symlinks behavior is |
|
|
|
|
# not activated. The two directories should be completely |
|
|
|
|
# independent with no symlinks pointing back here. |
|
|
|
|
git switch branch-init && |
|
|
|
|
|
|
|
|
|
# The left link must be "file-a" and "file-a" must contain "a". |
|
|
|
|
echo file-a >expect && |
|
|
|
|
git difftool --symlinks --dir-diff --tool cat-left-link \ |
|
|
|
|
branch-a branch-b >actual && |
|
|
|
|
test_cmp expect actual && |
|
|
|
|
|
|
|
|
|
echo a >expect && |
|
|
|
|
git difftool --symlinks --dir-diff --tool cat-left-a \ |
|
|
|
|
branch-a branch-b >actual && |
|
|
|
|
test_cmp expect actual && |
|
|
|
|
|
|
|
|
|
# The right link must be "file-b" and "file-b" must contain "b". |
|
|
|
|
echo file-b >expect && |
|
|
|
|
git difftool --symlinks --dir-diff --tool cat-right-link \ |
|
|
|
|
branch-a branch-b >actual && |
|
|
|
|
test_cmp expect actual && |
|
|
|
|
|
|
|
|
|
echo b >expect && |
|
|
|
|
git difftool --symlinks --dir-diff --tool cat-right-b \ |
|
|
|
|
branch-a branch-b >actual && |
|
|
|
|
test_cmp expect actual |
|
|
|
|
) |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'add -N and difftool -d' ' |
|
|
|
|
test_when_finished git reset --hard && |
|
|
|
|
|
|
|
|
|