Files
obsidian-vault/family/documents/vault-sync/2026-09-15-index-md-syncthing-conflict.md
T

4.8 KiB
Raw Blame History

title, tags, created
title tags created
2026-09-15 — Syncthing-конфликт family/index.md и битая wikilink после переименования
vault
sync
syncthing
git
2026-09-15

2026-09-15: конфликт family/index.md (Syncthing) + битая wikilink после rename

Симптом

При плановом прогоне sync (05:45 UTC) в коммите появился новый файл-конфликт Syncthing:

create mode 100644 family/index.sync-conflict-20260915-124537-XJRJQB2.md

Имя = 12:45:37 локального времени (UTC+7) → 05:45:37 UTC, т.е. расхождение обнаружено демоном Syncthing в момент прогона. В том же коммите (фаза syncthing, телефон) прошло переименование family/documents/altai-shopping.md → bring-to-altai.md и удаление 8 старых заметок vault-sync-* / vault-sync-log-*.

Разбор: какая версия главнее

diff family/index.md family/index.sync-conflict-20260915-124537-XJRJQB2.md:

Строка index.md (оставлена) конфликтная копия
21 [[family/documents/altai-shopping|Алтай — купить]]битая после rename [[bring-to-altai|Алтай — купить]] — корректная
3940 абзац с координатами дома (55.257328, 83.048234, 2ГИС, ДНП «Лаки Парк») — есть отсутствует
133 описание home-automation-wishlist («роадмап автоматизаций + девайсы») — есть сокращённый заголовок «🏡 Home automation»

index.md — надмножество по содержанию (157 строк против 155), поэтому оставлена она. Конфликтная копия не добавляет ничего, кроме поправки ссылки.

Сделано

  1. family/index.md, стр. 21: ссылка поправлена на [[family/documents/bring-to-altai|Алтай — купить]]. Питфолл: bring-to-altai.md имеет alias altai-shopping, но alias не спасает ссылку с путём[[папка/имя]] резолвится по файлу, а не по alias. Алиасы работают только для короткой формы [[имя]].
  2. Проверено, что altai-shopping.md физически отсутствует (ls family/documents | grep altai), а personal/projects/personal-os/obsidian-vault-strategy.md:182 содержит лишь упоминание внутри ASCII-схемы, не wikilink — править не нужно.
  3. Коммит 8197a62 taiga-vault: family/index.md, запушен в bare; все три клона (/vault, /vault.git, /obsidian-syncthing) на одном коммите, рабочие деревья чистые.

Осталось / решение Алексея

  • Файл family/index.sync-conflict-20260915-124537-XJRJQB2.md не удалён — оставлен на диске и в git как артефакт. Содержимое полностью покрыто index.md, можно удалять (в Obsidian или git rm). Ранее уже висит такой же хвост: family/documents/bring-to-russia.sync-conflict-20260831-161030-C6DYBCZ.md (от 31.08).
  • Корневая причина повторов: family/index.md пишут обе стороны (телефон через Syncthing и агент), при этом агентская версия выигрывает по объёму и «откатывает» правки телефона. Если конфликты по index.md будут повторяться — либо перестать править index.md с телефона, либо вынести оглавление в раздельные файлы (например index-family.md / index-personal.md), чтобы не пересекаться на одном файле.

Проверка целостности (05:46 UTC)

for d in /vault /vault.git /obsidian-syncthing; do git -C $d log --oneline -1; done
git -C /vault status --porcelain          # пусто
git -C /obsidian-syncthing status --porcelain   # пусто
grep -c "No such file or directory" /tmp/vault-sync.log   # 0
grep "Pushed ✓" /tmp/vault-sync.log | tail -3

Результат: все три фазы Pushed ✓, exit 0, одноимённые HEAD, дерево чистое.

Связанные заметки