Skip to content

Fixed issue #2559: Commit path changed to lower case when copying and adding files in Windows Explorer

username-removed-94717 requested to merge i2559 into master
  1. 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 for C:\Users\Tester\Documents\TestRepo\abc\Test.txt

  2. Debug TGitCache and trace to this line

  3. Put a break point at here

  4. Check the Call Stack and trace to here

  5. Found casepath uses lower case path

  6. Look back to CShellUpdater::WorkerThread(), and SHChangeNotify() is called to update path to Shell with lower case.

  7. Debug TortoiseShell

  8. Put a break point at here

  9. Use Shell to add file

  10. 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.

Merge request reports