[2026-09-15 05:47:01] taiga-vault: family/documents/vault-sync/2026-09-15-index-md-syncthing-conflict.md

This commit is contained in:
Taiga
2026-09-15 05:47:01 +00:00
parent 8197a62a56
commit 6a40e1f00d
@@ -0,0 +1,68 @@
---
title: 2026-09-15 — Syncthing-конфликт family/index.md и битая wikilink после переименования
tags: [vault, sync, syncthing, git]
created: 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\|Алтай — купить]]` — корректная |
| 39–40 | абзац с координатами дома (`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)
```bash
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, дерево чистое.
## Связанные заметки
- [[family/how-to/vault-sync-pipeline]] — архитектура трёх звеньев
- [[2026-09-02-dubious-ownership-and-merge-cleanup]]
- [[family/index]]