Use directory/file information from git status/diff output
commitf4d7cec0c9839b2886c5f84485b5bf8d26b3dd59
authorSven Strickroth <email@cs-ware.de>
Sat, 17 Dec 2016 13:07:44 +0000 (17 14:07 +0100)
committerSven Strickroth <email@cs-ware.de>
Sat, 17 Dec 2016 16:50:34 +0000 (17 17:50 +0100)
tree3996ef4bbca4a833ed2205e4aa0f76857bb598b8
parent07b22449cf4d0482f75c1d8c9b689dd2eb86ad2a
Use directory/file information from git status/diff output

This significantly reduces disk IO (fixes issue #2891) and speeds up showing the diffs (in log and commit dlg), but also improves submodule support because now the log can display a removed submodule in the filesystem as a submodule and not as a file.

Signed-off-by: Sven Strickroth <email@cs-ware.de>
70 files changed:
ext/gitdll/gitdll.c
ext/gitdll/gitdll.h
src/Changelog.txt
src/Git/Git.cpp
src/Git/GitRevLoglist.cpp
src/Git/TGitPath.cpp
src/Git/TGitPath.h
src/TortoiseProc/GitLogCache.cpp
src/TortoiseProc/gitlogcache.h
test/UnitTests/AutoTempDir.cpp
test/UnitTests/AutoTempDir.h
test/UnitTests/GitRevLoglistTest.cpp
test/UnitTests/GitTest.cpp
test/UnitTests/RepositoryFixtures.h
test/UnitTests/TGitPathTest.cpp
test/UnitTests/resources/git-submodules-repo/HEAD [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/config [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/index [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/HEAD [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/branch1 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/branch2 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/deleted [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/file [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/file_to_submodule [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/master [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/merged_file_to_submodule_keep_submodule [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/merged_file_to_submodule_take_file [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/merged_keep_branch1 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/merged_submodule_to_file_delete_both [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/merged_submodule_to_file_keep_file [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/merged_submodule_to_file_take_submodule [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/merged_use_third [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/logs/refs/heads/submodule_to_file [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/03/6248287461bce0d7912cdfe24b8757cb1434f6 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/07/ac6e5916c03747f7485195deb7ec9100d1c2ef [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/0a/e6a399e40bd80f592adb3bcf96a0793cfcc320 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/0f/95c89d9056f66cec279a483e9e02bb3c7b7b1e [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/14/13882dc44f6c3b5f6102f1eec071e368f33a06 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/19/0d2d704e73838b451b02513b341d6d3e770bf9 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/2d/2017245cf3d016c64e5ad4eb6b0f1bccd1cf7f [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/2e/63f1a55bc3dce074897200b226009f575fbcae [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/48/61e2446dd8d8c8d5d5986067915d8687f5656a [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/4e/d8d1f9ce9aedc6ad044d9051cb584a8bc294ac [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/63/c7ecf610b2a2a539c6f669e0dcd281047ed767 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/6c/36eceb53af17147abd4cf76ad6cca38ae5a7aa [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/72/4ce240abe4ace33664b4b0cc860e1ccf014b41 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/85/5c1f527e1b86d9568079132655b274c44320d2 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/90/0539cd24776a94d1b642358ccfdb9d897c8254 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/a4/59bc245bdbc45e1bca99e7fe61731da5c48da4 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/aa/6c4d406e98f1f104e3489928b56458062cd9b5 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/ad/40dd45be59b3e475a0f9ca120f68f0a59071e5 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/b9/ad06b41c00bd309f9639f92c96165813c6ebe3 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/c8/d17f57c7b511aff4aa2fbfae158902281cad8e [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/e8/199180d4f1eda395cb47c6142f78b2c525bb70 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/f3/08ae95f16e1f4abe251f6fcf566fe4f939015b [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/objects/f4/c4903b4f7debf71894da38eb941c4208a34190 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/branch1 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/branch2 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/deleted [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/file [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/file_to_submodule [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/master [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/merged_file_to_submodule_keep_submodule [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/merged_file_to_submodule_take_file [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/merged_keep_branch1 [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/merged_submodule_to_file_delete_both [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/merged_submodule_to_file_keep_file [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/merged_submodule_to_file_take_submodule [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/merged_use_third [new file with mode: 0644]
test/UnitTests/resources/git-submodules-repo/refs/heads/submodule_to_file [new file with mode: 0644]