У меня есть два компьютера, один на работе и один дома. У рабочей есть виртуальная машина с Arch, а у домашней - Arch. Работа, которую обычно выполняют на работе, но с помощью git много чего толкает вперед и назад, поэтому, когда я работаю над чем-то в одном месте, я могу взять то, что остановился в другом.
Одна вещь, которую я делаю довольно часто, это настройка файлов конфигурации для таких вещей, как Vim, ZSH, i3, бла-бла-бла, и я очень устаю от того, что мне приходится вспоминать то, что я делал прошлой ночью, чтобы сохранить следующую машину. использую до скорости!
Я знаю, что это работа для Git, но как мне справиться с этим? Например, у меня есть куча точечных файлов по всему домашнему каталогу в разных подкаталогах. Мне нужно было бы не только отслеживать изменения, но и управлять расположением этих файлов относительно того, где они находятся в любом репозитории, который я мог создать.
Другое дело, что некоторые из этих точечных файлов потребуют установки программного обеспечения .... Итак, возьмем, к примеру, i3: я установил i3 на свой домашний компьютер и получил его по своему вкусу с помощью его конфигурационного файла ... Но, просто тянуть точечные файлы, когда я приступаю к работе, не имеет особого смысла, потому что на рабочем ноутбуке не будет установлен i3! Я должен был бы не забыть установить то-то и то-то. Другим хорошим примером этого являются модули Python ... Иногда я что-то делаю и забываю точные имена модулей, которые я должен был установить как зависимости Python, чтобы запустить его. В этом случае простое извлечение файлов конфигурации - это только половина дела ... Мне понадобится сценарий или что-то еще, чтобы убедиться, что серверная часть этих файлов конфигурации обновлена и находится на своем месте.
Я знаю, что это не совсем конкретный вопрос, который люди хотели бы видеть здесь, но я также чувствую, что у этой проблемы есть достаточное количество документации, доступной для того, как пользователи Unix / Linux высшего качества справляются с этой, казалось бы, реалистичной задачей администрирования. Все предлагают что-то совершенно иное, и большинство проблем, похоже, связано с восстановлением после полного сбоя системы, а не просто с обновлением между двумя часто используемыми машинами.
Я решил это, поместив (большинство) моих файлов точек в
~/dotfiles
, который является мерзавец репо, что я регулярно толкаю к github ,В этом репозитории у меня также есть скрипт, который устанавливает ссылки в нужном месте:
Пока что «правильное местоположение» только
$HOME
, но это зависит от вас, чтобы заставить скрипт создавать ссылки на другие места.Я использовал жесткие ссылки, потому что git по умолчанию сохраняет символические ссылки как ссылки, но я уверен, что есть способ исправить это для символических ссылок.
В новой версии я расширил скрипт, чтобы удалить мешающие файлы конфигурации, такие как
~/.config/git/gitk
, Я мог бы также установить ссылки там, а не в$HOME
,Похоже, что
stow
это просто показалось достаточно простым, чтобы пропустить еще один инструмент.Я собираюсь поставить свой
.emacs.d
а также.xmonad
репо как подмодули в моемdotfiles
репо ... Может быть, не стоит хлопот, хотя, и я не могу забыть--recursive
пока клонирую.источник