summaryrefslogtreecommitdiff
path: root/t/t4047-diff-dirstat.sh
diff options
context:
space:
mode:
authorLibravatar Jonathan Tan <jonathantanmy@google.com>2019-09-18 13:27:38 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-09-20 10:15:57 -0700
commit83e3ad3b126125d23eea10283d85682a1a680daa (patch)
tree633d455b9afead846c749e5f93ed20be471771ed /t/t4047-diff-dirstat.sh
parentGit 2.23 (diff)
downloadtgif-83e3ad3b126125d23eea10283d85682a1a680daa.tar.xz
merge-recursive: symlink's descendants not in way
When the working tree has: - bar (directory) - bar/file (file) - foo (symlink to .) (note that lstat() for "foo/bar" would tell us that it is a directory) and the user merges a commit that deletes the foo symlink and instead contains: - bar (directory, as above) - bar/file (file, as above) - foo (directory) - foo/bar (file) the merge should happen without requiring user intervention. However, this does not happen. This is because dir_in_way(), when checking the working tree, thinks that "foo/bar" is a directory. But a symlink should be treated much the same as a file: since dir_in_way() is only checking to see if there is a directory in the way, we don't want symlinks in leading paths to sometimes cause dir_in_way() to return true. Teach dir_in_way() to also check for symlinks in leading paths before reporting whether a directory is in the way. Helped-by: Elijah Newren <newren@gmail.com> Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4047-diff-dirstat.sh')
0 files changed, 0 insertions, 0 deletions