Git: кэш+пагинация истории, diff в потоке, точечный коммит, честное удаление

- История: кэш по vault|rel|headOid, fileHistory(vault,file,limit), в диалоге Показать ещё по 60 с сохранением выбора
- Diff считается в QtConcurrent-пуле (parseBlocksWithDiffAsync+blocksReady, stale-guard), спиннер busy; MarkdownView.diffApplied
- commitFile точечно вместо всего хранилища (общий commitFromIndex), autoCommit честный; fileExistedAt + willDelete в подтверждении
- DocumentManager.readTextFile общий (GitManager.workdirContent через него); fileGitStatus через relativePath
- Тесты: пагинация/кэш, existed, commitFile не трогает B, async==sync
This commit is contained in:
2026-09-06 21:17:25 +03:00
parent f6074df0fc
commit 0846605c2b
12 changed files with 474 additions and 138 deletions
+10 -2
View File
@@ -13,6 +13,8 @@ add_test(NAME flora_smoke COMMAND flora_smoke)
add_executable(flora_git_test git_test.cpp
../src/git/GitManager.cpp
../src/git/GitManager.h
../src/core/DocumentManager.cpp
../src/core/DocumentManager.h
)
target_include_directories(flora_git_test PRIVATE ../src)
target_compile_definitions(flora_git_test PRIVATE CMARK_GFM_STATIC_DEFINE)
@@ -27,6 +29,8 @@ add_executable(flora_vault_test vault_test.cpp
../src/app/VaultManager.h
../src/core/SettingsStore.cpp
../src/core/SettingsStore.h
../src/core/DocumentManager.cpp
../src/core/DocumentManager.h
../src/git/GitManager.cpp
../src/git/GitManager.h
)
@@ -68,6 +72,7 @@ target_compile_definitions(flora_mdparser_test PRIVATE
target_link_libraries(flora_mdparser_test PRIVATE
Qt6::Core
Qt6::Gui
Qt6::Concurrent
cmark::cmark
cmark::cmark_extensions
)
@@ -119,7 +124,7 @@ add_executable(flora_extended_test extended_test.cpp
)
target_include_directories(flora_extended_test PRIVATE ../src)
target_compile_definitions(flora_extended_test PRIVATE CMARK_GFM_STATIC_DEFINE CMARK_GFM_EXTENSIONS_STATIC_DEFINE)
target_link_libraries(flora_extended_test PRIVATE Qt6::Core Qt6::Gui cmark::cmark cmark::cmark_extensions Flora_libgit2_static)
target_link_libraries(flora_extended_test PRIVATE Qt6::Core Qt6::Gui Qt6::Concurrent cmark::cmark cmark::cmark_extensions Flora_libgit2_static)
if(TARGET KF6SyntaxHighlighting)
target_link_libraries(flora_extended_test PRIVATE KF6SyntaxHighlighting)
endif()
@@ -147,7 +152,7 @@ add_executable(flora_integration_test integration_test.cpp
)
target_include_directories(flora_integration_test PRIVATE ../src)
target_compile_definitions(flora_integration_test PRIVATE CMARK_GFM_STATIC_DEFINE CMARK_GFM_EXTENSIONS_STATIC_DEFINE)
target_link_libraries(flora_integration_test PRIVATE Qt6::Core Qt6::Gui cmark::cmark cmark::cmark_extensions Flora_libgit2_static)
target_link_libraries(flora_integration_test PRIVATE Qt6::Core Qt6::Gui Qt6::Concurrent cmark::cmark cmark::cmark_extensions Flora_libgit2_static)
if(TARGET KF6SyntaxHighlighting)
target_link_libraries(flora_integration_test PRIVATE KF6SyntaxHighlighting)
endif()
@@ -157,6 +162,8 @@ add_test(NAME flora_integration_test COMMAND flora_integration_test)
add_executable(flora_git_history_test git_history_test.cpp
../src/git/GitManager.cpp
../src/git/GitManager.h
../src/core/DocumentManager.cpp
../src/core/DocumentManager.h
)
target_include_directories(flora_git_history_test PRIVATE ../src)
target_link_libraries(flora_git_history_test PRIVATE Qt6::Core Flora_libgit2_static)
@@ -166,6 +173,7 @@ add_test(NAME flora_git_history_test COMMAND flora_git_history_test)
add_executable(flora_vault_select_test vault_select_test.cpp
../src/app/VaultManager.cpp
../src/core/SettingsStore.cpp
../src/core/DocumentManager.cpp
../src/git/GitManager.cpp
)
target_include_directories(flora_vault_select_test PRIVATE ../src)