Etckeeper - отличный инструмент для отслеживания изменений в ваших конфигурационных файлах /etc
. Несколько ключевых вещей об этом действительно выделяются. Он может использоваться с различными VCS: git, mercurial, darcs или bzr. Он также выполняет автоматическую фиксацию ежедневно и всякий раз, когда вы устанавливаете, удаляете или обновляете пакет. Он также отслеживает права доступа к файлам и метаданные о владельцах и группах пользователей.
Я также хотел бы, чтобы мои "точечные файлы" в моем домашнем каталоге также находились под контролем версий, предпочтительно на базаре. Кто-нибудь знает, существует ли такой инструмент, как etckeeper для этой цели?
В худшем случае, я полагаю , что простой хрон работает bzr add && bzr ci
один или два раза в день вместе с добавлением ~/Documents
, ~/Music
и т.д. к .bzrignore
Anyone уже делал нечто подобное с помощью сценария?
Хотя я бы предпочел базар, другие варианты могут быть интересны.
источник
bzr
это, конечно, не путь в 2015 году.Ответы:
Я не знал, есть ли что-нибудь, что могло бы сделать это, поэтому я собрал некоторый код для достижения именно того, что вы хотите, используя мой репозиторий здесь: http://github.com/robertmassaioli/config-files
У меня есть файл, который говорит, где все файлы принадлежат, и программа generate_links просто помещает их все туда. Если вы знаете, что делаете, и можете скомпилировать некоторый код на Haskell, то это действительно просто и легко. Хотя имейте в виду, что это действительно было сделано для моего личного использования.
источник
Ну, я продолжил и делал это вручную, пока не нашел лучшего решения. Так что я мог бы также объяснить, что я сделал.
Сначала я сделал
bzr init ~
, но следующее, что я сделал, былоbzr ignore "*"
. Я решил, что не хочу держать все это под контролем версий. Это просто не стоило того, особенно если учесть, что есть некоторые вещи, которые вы действительно не должны хранить в vcs, как ваши ключи. Таким образом, я тогда имел кbzr add
определенным файлам, которые я хотел. Вы также можете добавить исключения.bzrignore
. Здесь также полезны регулярные выражения Python. Я держу это довольно тонким пока. Если все пойдет хорошо, я мог бы добавить все~/.config
и~/.gconf
тоже.Я также написал быстрый скрипт, который я запускаю как задание cron. Он проверяет, изменились ли файлы, и если это так, делает автоматическую фиксацию:
источник
Я превратил весь мой
~
каталог в хранилище Bazaar. Хранение метаданных не является проблемой для файлов в домашнем каталоге: все принадлежит одной и той же учетной записи и группе иbzr
уже сохраняет бит выполнения.Я вручную добавляю "интересные" файлы к нему (я не хочу, например, чтобы моя музыкальная коллекция или кеш Firefox находились под контролем версий), но если вы хотите автоматизировать это с помощью скрипта, я думаю, что это простое решение выполнение
bzr add && bzr ci
на выбранных каталогах или на выходеfind
команды просто сделает работу.источник
Я храню свои zsh и vim файлы в git, помещаю на github, в разные репозитории:
для zsh, например, я создал «.zsh» и поместил в него zshrc и zshenv, а также скрипт для связывания zshrc с ~ / .zshrc и zshenv с ~ / .zshenv, что-то вроде этого.
так что я делаю
для .vim это почти то же самое, за исключением того, что я использую субмодули для плагинов с патогеном, поэтому я добавил это в init.sh
и когда я хочу добавить плагин vim, я делаю
например.
Хорошо, это потребовало бы слишком много работы, если у вас есть несколько точек, которыми вы хотите управлять, но ничто не мешает вам поместить их все в один каталог или разделить по действиям (включено для всех графических редакторов, одно для веб-активности ...) или около того. во всяком случае, это то, что я сделал, так что только мои два цента :).
источник
Я использую решение, которое не является автоматическим, как etckeeper (я должен сделать коммит вручную), но оно хорошо сработало для меня. Это не так развито, как мне нравится, но работает.
Я написал свою собственную утилиту, которая похожа на GNU Stow , так как stow делал не все, что хотел. Я называю это Stow in Home . Когда запускается, он ищет каталог с именем "HOME". Затем он берет все в этом каталоге и символически связывает его с соответствующим местоположением в $ HOME, создавая каталоги по мере необходимости. Он также будет переводить имена файлов - если файл начинается с «_», он будет заменен на «.». Я сделал это, потому что лучше редактировать мои точечные файлы, когда они не скрыты (по умолчанию их можно увидеть в списках каталогов). Тогда это поместило бы их в имя, которое их приложение ожидает.
Итак, у меня есть несколько репозиториев git для моей конфигурации. Я помещаю только точечные файлы, которые я лично редактирую в них. Преимущество этого в том, что у меня может быть репозиторий для файлов точек, который я могу поделиться с другими (например, моей конфигурацией Emacs) и один для других, которые являются частными (скажем, моя конфигурация ssh, с именами хостов и тому подобное для работы). Символьная ссылка ставит с stow-in-home, все расставляет на свои места, но контроль источника для каждого из них может быть отдельным.
Это хорошо сработало для меня. На самом деле нет причин, по которым я не мог настроить что-то, чтобы автоматически делать коммиты. Или переместите все точечные файлы в соответствующие репозитории и по-прежнему используйте хранилище дома. Но так я поступил.
источник
Не можете ли вы добавить
dot files
репозиторий, используемый в Etckeeper?источник
/etc
?Я сделал это, скопировав все мои точечные файлы, которые я хотел бы сохранить под контролем исходного кода, в папку с именем «точечные файлы» в моем / home / каталоге. Конечно, это означает сохранение дубликатов и копирование туда-сюда при необходимости, но я считаю, что это самое простое решение для меня.
источник
Я храню свои файлы в подкаталоге и делаю символические ссылки. У меня есть скрипт, который автоматизирует это. Вы можете проверить все это на http://code.google.com/p/samking-config-files/source/browse/
источник