forgeplan git-sync
Инкрементально синхронизирует LanceDB с изменениями в markdown, внесёнными операцией git - обычно git pull, git merge или git rebase. Вместо полной перестройки индекса git-sync сравнивает рабочее дерево с ссылкой git и повторно парсит только те артефакты, которые фактически изменились.
Использование
Заголовок раздела «Использование»forgeplan git-sync [OPTIONS] --since <SINCE> Ссылка Git для сравнения (по умолчанию: ORIG_HEAD из последнего pull/merge) -h, --help Вывести справку -V, --version Вывести версиюКак это работает
Заголовок раздела «Как это работает»- Выполняет
git diff --name-only <SINCE> HEADв области.forgeplan/. - Фильтрует результат, оставляя файлы артефактов с расширением
.md. - Для каждого изменённого файла: повторно парсит и обновляет соответствующую строку в LanceDB.
- Для удалённых файлов: удаляет соответствующие строки из индекса.
- Пересчитывает производные поля (теги, ссылки, оценки) для затронутого набора.
ORIG_HEAD используется по умолчанию, потому что git pull/git merge/git rebase устанавливают его на предыдущий кончик текущей ветки, предоставляя git-sync точное «окно» того, что было получено при данном pull.
Когда это использовать
Заголовок раздела «Когда это использовать»- После
git pull- коллеги объединили новые PRD/RFC вdev, вы только что выполнили pull, и хотите, чтобы они появились в вашем локальном LanceDB.git-syncвыполняется за долю времени полной переиндексации. - После
git merge feature/xyz- то же самое для локальных слияний. - После
git checkoutмежду ветками с расходящимся состоянием артефактов - передайте--since <other-branch>для синхронизации изменений.
Рабочий процесс удалённой команды
Заголовок раздела «Рабочий процесс удалённой команды»# Утренняя рутина с активной командойgit checkout devgit pull origin dev # получает 3 новых PRD от коллегforgeplan git-sync # <1с: переиндексированы только 3 новых файлаforgeplan list --since 1d # посмотреть, что пришлоforgeplan health # проверить наличие новых слепых пятенСравнение с холодной пересборкой:
forgeplan reindex # обходит всё рабочее пространство - безопасно, но медленнееДля небольших рабочих пространств разница незначительна; для рабочих пространств с сотнями артефактов git-sync значительно быстрее.
git-sync vs reindex vs watch
Заголовок раздела «git-sync vs reindex vs watch»| Команда | Использовать, когда | Стоимость |
|---|---|---|
git-sync | После git pull/merge, если известна ссылка для сравнения | O(изменённые файлы) |
reindex | Ручные изменения, свежее клонирование, неизвестное расхождение | O(все артефакты) |
watch | Интерактивное редактирование, нужна живая синхронизация | демон, O(событие) |
Эмпирическое правило: если git только что переместил HEAD, используйте git-sync. Если вы редактировали файлы самостоятельно в редакторе, используйте reindex (или оставьте watch запущенным). Если вы не уверены, синхронизирован ли индекс, reindex всегда является безопасным запасным вариантом.
# По умолчанию - с момента последнего pull/mergeforgeplan git-sync
# Явная база для сравнения (например, с main)forgeplan git-sync --since origin/main
# Проверить, что принесла ветка PRgit checkout feat/prd-050-discoverforgeplan git-sync --since devОграничения
Заголовок раздела «Ограничения»- Требует чистого рабочего дерева git для надёжного сравнения - незафиксированные изменения могут быть пропущены или учтены дважды. Используйте в паре с
watchдля «грязных» деревьев. - Если
ORIG_HEADустарел (не было недавних pull/merge), передайте--sinceявно. - Не обнаруживает внеполосные изменения markdown - используйте
reindexдля таких случаев.
См. также
Заголовок раздела «См. также»- Обзор CLI
forgeplan reindex- запасной вариант полной пересборкиforgeplan watch- демон живой синхронизацииforgeplan health- проверка после синхронизации