Управление домашним каталогом на нескольких машинах с некоторыми отличиями? - PullRequest
4 голосов
/ 31 мая 2009

Итак, на данный момент у меня есть довольно точная настройка файлов точек, и я искал решение для синхронизации вещей между машинами. Мне нравится идея иметь ~ / dotfiles dir (или аналогичный), который содержит make-файл, который обрабатывает создание символических ссылок. Переместите директорию dotfiles с машины на машину через rsync / unison / dvcs / whats, и я готов.

Проблема с этим возникает из-за того, что на некоторых машинах файлы немного отличаются, и я хотел бы отследить это. Например, мой .xmobarrc (приложение для тех, кто не знаком с панелью), имеет параметр конфигурации для отображения времени автономной работы моего ноутбука, но не рабочего стола.

Каков наилучший способ управления файлами с такими различиями для каждой машины таким образом, что если я изменю на одной машине что-то, что должно повлиять на все машины, я могу объединиться назад, и если я изменю на одной машине, которая не должна не слиться, не будет. Очевидно, что для этого необходим DVCS-подобный git, а не rsync / unison / etc, но я не уверен, как это настроить.

Мастер ветвь с одной ветвью на машину, с которой я сливаю / перебазирую / черешку подбираю взад и вперед? Это кажется немного утомительным. Есть ли лучший способ?

1 Ответ

2 голосов
/ 31 мая 2009

Один из способов будет иметь:

  • глобальная конфигурация со всеми глобальными параметрами (если вы измените ее и объедините обратно, это повлияет на все машины)
  • один файл конфигурации на машину (названный, например, после uname машины)
  • скрипт, создающий ваш окончательный конфигурационный файл как композицию глобального и машинного.

С учетом слияния:

  • Когда вы объединяете конфигурационные файлы из одной ветки в другую, вы можете объединить все (без участия вишни)
  • Или у вас не всегда должна быть ветвь для машин, поскольку машинные конфигурационные файлы уже обеспечивают разделение и изоляцию этих параметров (в разных файлах вместо разных веток)
...