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
+5
View File
@@ -79,6 +79,11 @@ private:
void ensureAutosave();
QString readFile(const QString &path, bool *ok) const;
public:
// Общее чтение текстового файла с лимитом (защита от OOM). Используется и GitManager.
static QString readTextFile(const QString &path, qint64 maxBytes = 10LL * 1024 * 1024,
bool *ok = nullptr);
QList<Doc> m_docs;
int m_active = -1;
int m_secondary = -1;