Bug 466581

Summary: kdiff3 directory diff does not follow file links when "Follow file links" is set when used with git difftool -d
Product: [Applications] kdiff3 Reporter: Kevin Hake <kevin>
Component: applicationAssignee: michael <reeves.87>
Status: RESOLVED UPSTREAM    
Severity: normal    
Priority: NOR    
Version: 1.10.0   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
URL: https://github.com/git-for-windows/git/issues/4367
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: git difftool -d output

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.