[2026-09-04 02:07:27] taiga-vault: family/documents/vault-sync/2026-09-04-git-identity-loss-silent-commit-failure.md family/how-to/vault-git-sync.md
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# 2026-09-04 — Потеря git identity → молчаливый отказ коммитов в sync
|
||||
|
||||
## Симптом
|
||||
|
||||
Трёхфазный sync (`/opt/data/sync-vault.sh`) отрабатывал с exit 0 и «Pushed ✓» по всем
|
||||
фазам, но изменения с телефона (клон `/obsidian-syncthing`) НЕ доходили до bare-репозитория.
|
||||
|
||||
- `git status --porcelain` в `/obsidian-syncthing` показывал staged `M`/`D`/`A` — файлы
|
||||
индексировались (`git add -A`), но коммит не происходил.
|
||||
- В логе `/tmp/vault-sync.log` — только «Pushed ✓» + «Already up to date.» без единой
|
||||
строки `[main <hash>]` после 2026-09-02 12:17.
|
||||
|
||||
## Причина
|
||||
|
||||
В контейнере отсутствовала git identity (`user.name`/`user.email` не заданы):
|
||||
|
||||
```
|
||||
git commit → fatal: unable to auto-detect email address (got 'root@4e97770b2f2f.(none)')
|
||||
```
|
||||
|
||||
`sync-vault-lib.sh` глушит ошибку коммита (`2>/dev/null || true`), поэтому фаза «успешно»
|
||||
шла дальше: fetch/merge/push не находили новых коммитов → «Already up to date.».
|
||||
|
||||
Identity жила в `/root/.gitconfig`, который **не переживает рекреацию контейнера**.
|
||||
Последний коммит со старой identity — 2026-09-02 12:17 (4bcd0987, `Taiga <taiga@hermes>`),
|
||||
после инцидента hermes-taiga-crashloop и пересоздания контейнера (бэкапы
|
||||
`.bak-per-user-20260902-1229`) конфиг слетел. Изменения с телефона копились
|
||||
~1.5 суток (до 2026-09-04 02:06).
|
||||
|
||||
## Исправление
|
||||
|
||||
В `/opt/data/sync-vault.sh` добавлена идемпотентная установка identity при каждом запуске
|
||||
(рядом с уже существующим safe.directory — тот же паттерн):
|
||||
|
||||
```bash
|
||||
git config --global user.name "Taiga"
|
||||
git config --global user.email "taiga@hermes"
|
||||
```
|
||||
|
||||
Проверено: sync закоммитил все накопленные изменения одним коммитом `2b45264`
|
||||
(23 файла, +654/−459, автор `Taiga <taiga@hermes>`), все три репозитория сошлись на нём,
|
||||
деревья чистые.
|
||||
|
||||
## Наблюдение (не блокер)
|
||||
|
||||
В коммите много `mode change 100755 => 100644` — нормализация exec-бита, файлы на диске
|
||||
и в индексе теперь 644, churn не повторяется. Если режимные изменения начнут снова
|
||||
появляться при записях с телефона — выставить `git config core.filemode false`
|
||||
в `/obsidian-syncthing` (безопасно на ZFS, см. vault-sync-infrastructure skill).
|
||||
|
||||
## Затронутые файлы
|
||||
|
||||
- `/opt/data/sync-vault.sh` — добавлена установка git identity
|
||||
- Коммит `2b45264` в bare `/vault.git` (source of truth)
|
||||
Reference in New Issue
Block a user