Fixed issue #2559: Commit path changed to lower case when copying and adding files in Windows Explorer
-
Captured the Debug strings of TGitCache 102.89755249 [14904] CShellUpdater::WorkerThread: shell notification for C:\Users\Tester\Documents\TestRepo\Abc 102.89969635 [14904]
CShellUpdater::WorkerThread:
shell notification forC:\Users\Tester\Documents\TestRepo\abc\Test.txt
-
Debug TGitCache and trace to this line
-
Put a break point at here
-
Check the Call Stack and trace to here
-
Found
casepath
uses lower case path -
Look back to CShellUpdater::WorkerThread(), and SHChangeNotify() is called to update path to Shell with lower case.
-
Debug TortoiseShell
-
Put a break point at here
-
Use Shell to add file
-
This GetDisplayNameOf() is called, and the
name
is filled with lower case, then filled into our temp file "gitXXXX.tmp", ...
So, lowercase -> SHChangeNotify() -> GetDisplayNameOf() -> gitXXXX.tmp
Build a new setup based on this fix, looks good.