summaryrefslogtreecommitdiff
path: root/builtin/difftool.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-10-04 04:49:18 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-10-04 04:49:19 (GMT)
commit6a4f5dadd3d373db29053697aaefc67e31416699 (patch)
tree5feb58eb565bb8cf8cf698c649aedd4601fe7569 /builtin/difftool.c
parent92382d14cd4146ad05e891a529ed3ce5822d11f7 (diff)
parent5bafb3576ac8eb8464ddd5cc14a1211aaa46364b (diff)
downloadgit-6a4f5dadd3d373db29053697aaefc67e31416699.zip
git-6a4f5dadd3d373db29053697aaefc67e31416699.tar.gz
git-6a4f5dadd3d373db29053697aaefc67e31416699.tar.bz2
Merge branch 'da/difftool-dir-diff-symlink-fix'
"git difftool --dir-diff" mishandled symbolic links. * da/difftool-dir-diff-symlink-fix: difftool: fix symlink-file writing in dir-diff mode
Diffstat (limited to 'builtin/difftool.c')
-rw-r--r--builtin/difftool.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/builtin/difftool.c b/builtin/difftool.c
index bb9fe72..21e055d 100644
--- a/builtin/difftool.c
+++ b/builtin/difftool.c
@@ -557,11 +557,13 @@ static int run_dir_diff(const char *extcmd, int symlinks, const char *prefix,
if (*entry->left) {
add_path(&ldir, ldir_len, entry->path);
ensure_leading_directories(ldir.buf);
+ unlink(ldir.buf);
write_file(ldir.buf, "%s", entry->left);
}
if (*entry->right) {
add_path(&rdir, rdir_len, entry->path);
ensure_leading_directories(rdir.buf);
+ unlink(rdir.buf);
write_file(rdir.buf, "%s", entry->right);
}
}