Bug 466581 - kdiff3 directory diff does not follow file links when "Follow file links" is set when used with git difftool -d
Summary: kdiff3 directory diff does not follow file links when "Follow file links" is ...
Status: RESOLVED UPSTREAM
Alias: None
Product: kdiff3
Classification: Applications
Component: application (show other bugs)
Version: 1.10.0
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: michael
URL: https://github.com/git-for-windows/gi...
Keywords:
Depends on:
Blocks:
 
Reported: 2023-02-28 03:34 UTC by Kevin Hake
Modified: 2023-05-16 19:12 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
git difftool -d output (56.19 KB, image/png)
2023-02-28 03:34 UTC, Kevin Hake
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Hake 2023-02-28 03:34:12 UTC
Created attachment 156817 [details]
git difftool -d output

SUMMARY
I'm using "git difftool -d" (or equivalent flag "--dir-diff" in a git repo with local changes, with KDiff3 set as the default tool.
KDiff3 Folder settings has both "Follow file links" and "Follow folder links" checked.

Apparently git passes links to the files in the working dir (B), and actual files for the other commit (A), which is HEAD in this case, and KDiff3's directory diff shows correctly which files are different, but the diff pane only shows file data for A (the non-link).

In contrast, just running "git difftool", shows a proper diff for each file.

I'd like for "git difftool -d" to show me proper diffs in directory diff mode.

STEPS TO REPRODUCE
1. In git bash for windows (I'm using 2.39.2-64-bit), cd to a git repository containing at least one previous commit and some current un-staged changes of one or more tracked files in the repo. 
2. run "git difftool -d" or "git difftool --dir-diff"

OBSERVED RESULT
The diff pane only shows file contents for Type "File" and not for Type "File-Link", and Operation says "Error: Conflicting File Types"

EXPECTED RESULT
Selecting different files in the "Directory merge" pane shows a diff in the diff pane similar to the output of "git difftool" run without the -d option.

SOFTWARE/OS VERSIONS
Windows 10: 22H2 build 19045.2486
"git for windows" (https://github.com/git-for-windows/git/releases/download/v2.39.2.windows.1/Git-2.39.2-64-bit.exe)

According to the About KDiff3 dialog (idk if it can be trusted, note https://bugs.kde.org/show_bug.cgi?id=466579):
KDE Frameworks Version: 5.101.0
Qt Version: , 5.15.8 (built against 5.15.7))

ADDITIONAL INFORMATION
I've tried all 4 combinations of "Follow file links" and "Follow folder links" settings and none of them worked with "git difftool -d"
Comment 1 Kevin Hake 2023-03-27 21:18:57 UTC
I noticed p4merge also has problems with this git command, so I opened a ticket for git for windows here: https://github.com/git-for-windows/git/issues/4367
Comment 2 michael 2023-05-16 19:12:57 UTC
Closing this for now seems like a git bug on windows.