Что то типа путевых записок, и размышлений об жизни, ну и о FreeBSD конечно, иногда какие нибудь новости и что то типа переводов.

15.09.2009

started using mercurial

Собрал волю в кулак и занялся освоением mercurial, в боевых условиях :)
В ходе поисков по интернету, и пролистывания документации понял что нужная мне конфигурация репозитория, может располагаться только в корне, так как я собираюсь разместить в одном репозитории одновременно /etc/, /usr/local/etc, домашние директории и директории сайта, по моему такой расклад весьма нормален для бекапа сервера, хотя может и стоит разбивать это на разные репозитории, когда проект вырастет но пока пожалуй удобнее все держать в одной куче.
Для того что бы в репозиторий попало только нужное надо создать файл .hgignore, примерно следующего содержания
# cat .hgignore
# use glob syntax.
syntax: glob

etc/master.passwd
home/andrey/Angra\ -\ Holy\ Land.tar.gz
home/andrey/moinmoin/Python-2.6.2.tgz
*.log
*~

# switch to regexp syntax.
syntax: regexp
^COPYRIGHT
^VERSION
^bin/
^boot/
^dev/
^lib/
^libexec/
^media/
^mnt/
^proc/
^rescue/
^sbin/
^sys/
^tmp/
^var/
^usr/bin/
^usr/games/
^usr/include/
^usr/lib/
^usr/libdata/
^usr/libexec/
^usr/obj/
^usr/ports/
^usr/sbin/
^usr/share/
^usr/src/
^usr/local/bin/
^usr/local/include/
^usr/local/info/
^usr/local/lib/
^usr/local/libdata/
^usr/local/libexec/
^usr/local/man/
^usr/local/sbin/
^usr/local/share/moin/htdocs/rrd/
^usr/local/share/moin/underlay
Как видно он содержит список исключений, причем может содержать как отдельные файлы, смотри секцию # use glob syntax, так и регулярные выражения # switch to regexp syntax, поддерживается синтаксис Python/Perl.
из остального пока освоил основы, как то создание репозитория, клонирование, ну и прочую элементаршину, желающие могут полистать, там вроде доходчиво все описано, а в вики есть даже основы по русски.
Правда сам довольно долго тормозил, в основном из за мелочей конечно, надо для начала понять, что там для чего, ну в основы я уже вроде как въехал, теперь постепенно буду разбираться дальше. Да стоит учитывать, что если использовать ssh транспорт, то корневой у него, обычно, является домашняя папка пользователя :)
А да надо еще разобраться с тонкостями .hgrc, но для начала и без него вроде вполне сносно работать.

4 комментария:

  1. Я в данный момент также выбираю систему контроля версий для хранения конфигов около десятка серверов.
    А почему выбран именно mercurial, рассматривались ли остальные варианты - rcs,svn,git?
    И какие успехи в освоении?

    ОтветитьУдалить
  2. Ну подкупила простота, и небольшой размер, правда остальные особо и не смотрел, но то что есть у меркуриал вроде должно хватить, только вот эта "загвоздка" что основной репозиторий нужно делать в корне конечно как то мне кажется не совсем красиво.
    Успехов пока немного, главный то что таки завел его на сервере, и бекапятся все конфиги и сайт, пока в ручном порядке, потренировался с востановлением отдельных файлов, планирую переставить VDS, и поднять все из архива, ну и потихому добавляю исключения, так как в сайте попало немного кеша, что в архиве в принципе не нужно.

    ОтветитьУдалить
  3. рекомендую посмотреть на etckeeper http://romanvbabenko.blogspot.com/2008/09/etckeeper.html , но он только для /etc, в качестве основы можно выбирать git, mercurial,bazaar

    ОтветитьУдалить
  4. Не ну только в пределах одной папки, это элементарно и не интересно, поднимается с пол пинка, ну пока вроде пример вполне работает, правда на сайте надо еще всякие кешы в исключения внести, дальше покопать как то пока руки не дойдут :)

    ОтветитьУдалить

Здесь можно записать свои мысли о посте :)
Если ваш ответ не появился сразу, не паникуйте, тут работает спамоловка, и вероятно вы угодили в неё, так как были анонимом или в вашем посте ссылка, ну или вас не любит google.
Я проснусь и одобрю комент ;)