Переехал с GNU Stow на Chezmoi — обсуждение добралось до Nix
Жалоба, которая запустила миграцию, крошечная и конкретная: симлинки работают в обе стороны, каждое редактирование сразу пишет обратно в репозиторий и незаметно делает дерево грязным. Исправление открыло 116-комментарный путь вверх по инструментальной лестнице.
Заметка объясняет, почему модель симлинков GNU Stow сломалась: правки текут обратно в репо через ссылку, а файлы вроде ~/.zprofile уже существуют к запуску Homebrew — Stow отказывается их брать. Chezmoi хранит копию и применяет шаблон, устраняя обе проблемы.
Потом тред сделал своё дело. Каждый Chezmoi-выбор получал ответ «ты в шести месяцах от Nix», тот — от разработчика, переписавшего Nix с нуля и назвавшего Home Manager «безнадёжно неверно спроектированным», а тот — от армии, которая просто кладёт git-репо в домашнюю папку и не смотрит назад.
Маленькая жалоба на симлинки — и полноценная инструментальная лестница

Заметка «Migrating from GNU Stow to Chezmoi» точна в описании проблемы. Stow управляет dotfiles, создавая симлинки из репозитория в домашнюю директорию, и претензия автора сугубо механическая:
«Симлинки работают в обе стороны. Каждое редактирование на каждой машине записывается прямо через ссылку в клон репозитория на этой машине.»
Вторая проблема — порядок загрузки: «К тому моменту, когда Homebrew и несколько инструментов отработают на новом Mac, файлы вроде ~/.zprofile и ~/.gitconfig уже существуют», а Stow не возьмёт файл, который уже есть. Chezmoi обходит обе проблемы: хранит исходную копию и применяет её (с шаблонизацией для отличий между машинами), а не создаёт ссылки. Это вся статья. Интересное начинается в 116-комментарном треде — он превращается в лестницу статусов.
Каждая ступень продаёт следующий инструмент
Повторяющийся приём: что бы ты ни использовал, кто-то настаивает, что этажом выше — твоё настоящее место.
«Как только доходишь до стадии Chezmoi, ты в шести месяцах от Nix и Home Manager. Зачем карабкаться почти на вершину горы и просто садиться?» — pkulak, инженер в Vevo
Лестница сгибается и в обратном направлении, и самый авторитетный голос здесь — предупреждение, а не похвала.
«Я переписал nix с нуля… Я не могу рекомендовать его в нынешнем виде… home-manager — пожалуй, самый наглядный пример инструмента, который безнадёжно неверно спроектирован, а «ты держишь его не так» со стороны сообщества — это проблема сообщества, а не чья-то проблема с держанием.» — разработчик, переписавший Nix с нуля
Давний контрибьютор Chezmoi занял среднюю позицию из личного опыта: «Я каждый раз отскакивал от Nix… Учитывая, что у Chezmoi есть первоклассная интеграция с менеджерами секретов, подозреваю, что он умеет то, чего Home Manager не может».
Грязное дерево — это баг или фича?
Главная претензия автора — симлинки незаметно оставляют репо грязным — была перевёрнута в достоинство теми, кто никогда не покидает рабочее дерево.
«Для меня это ключевая фича. Если файл отредактирован, git показывает его грязным, и я сам решаю: откатить или закоммитить. Никаких лишних шагов.» — разработчик, хранящий dotfiles в обычном git-репо
Возражение точно зафиксировало, когда это ломается — и оно совпадает с болью автора:
«Ты редко видишь статус git dirty/clean, потому что почти никогда не находишься внутри рабочего дерева git… Спустя месяцы заходишь в ~/.dotfiles — а дерево грязное, с кучей случайных правок, о которых ты уже не помнишь.» — kelnos, ключевой разработчик Xfce
Эргономика самого Chezmoi тоже получила критику: несколько долгосрочных пользователей признали, что chezmoi edit так и не стало мышечной памятью. Они редактируют живой файл, забывают, и в итоге всё равно мержат диффы — то же трение, только в новой обёртке.
Молчаливое большинство: git-репо и двенадцать строк Shell
Под инструментальной войной сидит большой невозмутимый лагерь, считающий всё это пространство перестроенным. Один ответ сформулировал прямо: «Я никогда не понимал, зачем люди так усложняют, если можно просто положить git-репо в домашнюю директорию». Тред полон таких голосов: make dotfiles, создающий симлинки за пять минут; rsync всей домашней директории между ноутбуками 15 лет подряд; Syncthing, следящий за репо через inotify. Плюс yadm, rcm, mise и дюжина самописных POSIX-скриптов. Контраргумент против «просто используй git» столь же краток: «Git работает, пока не нужна условная логика: файлы для конкретной платформы или шаблонизация». Даже мейнтейнер mise зашёл показать новые функции загрузки и без подсказок признал, что chezmoi — «любимец сообщества».
Что лестница на самом деле измеряет
Если снять с рекомендаций шелуху, они не про dotfiles. Это прокси: сколько сложности ты готов нести, чтобы новая машина ощущалась родной. Настоящий урок заметки дёшев: симлинки Stow ломаются двумя конкретными, называемыми способами (правки текут назад, уже существующие файлы блокируют принятие), и любой инструмент с моделью копирования или шаблонов исправляет оба. Всё выше — шаблонизация Chezmoi, Home Manager, Nix с нуля — даёт мощь для каждой машины ценой усложнения, которое тред сам не может назвать оправданным. Один из комментаторов замкнул круг идеально: прочитав тред, он бросил работающую настройку Stow, посмотрел на Chezmoi, затем убедил себя, что хочет Nix. «Это и есть опыт HN».
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Беспромптовый OAuth убивает экран согласия MCP, и мейнтейнеры пришли в тред
Боль MCP — танец согласия с каждым сервером: авторизуй каждый инструмент, перепутай личные и корпоративные аккаунты, не оставь службе безопасности никакого центрального следа. Enterprise-Managed Authorization переносит решение в провайдер удостоверений — экран больше не появляется.