git
До общения с Oleganza я не видел у git каких-либо ярких преимуществ перед bzr.
И, наверное, не увидел бы, если бы не Олег.
Первое что было самым необычным – git полностью децентрализованый. И привычный svn-like workflow тут не работает. Надо было привыкать к branch-style.
Второе – это то, что команды с теми же названиями что и у svn имеют другой смысл.
Жутко понравилось что ветки git держит в себе, то есть не надо плодить по 3-4 папки для разных фичей.
gitosis
Также я задумался о совместной работе. github – это, конечно, хорошо, но у меня уже есть багтракер понимающий git. Отчего бы не попробовать git на своем сервере?
Был заведен юзерь git без пароля
поставлен gitosis
сделаны небольшие правки его сорсов (дело в том, что по умолчанию gitosis создает репо с маской 0750, мне же надо было с 0755 – чтоб www-data мог его читать):
правим
и заменяем 0750 на 0755.
Подробнее описано в блоге разработчика gitosis.
tailor and bzr
Когда все взлетело с git, решил попробовать отконвертировать при помощи утилиты tailor старые репо из bzr в git.
Конфиг получился примерно такой (замечания приветствуются):
verbose = True
[project]
target = git:target
start-revision = INITIAL
root-directory = /home/dm/tmp/bzr2git
state-file = tailor.state
source = bzr:source
subdir = bzr2git.tmp
[bzr:source]
repository = /home/dm/bzr/BZR_PROJECT_HERE
[git:target]
repository = /home/dm/tmp/bzr2git/tmp/.git
и после запуска
в /home/dm/tmp/bzr2git/bzr2git.tmp появляется вполне живой git-репозитарий. Его я уже стягивал к себе и вливал в gitosis от себя.
Примечание
git не отслеживает пустые папки, и в процессе конвертации теряются “log”, “tmp”, etc… Чтоб отслеживал достаточно
touch log/.empty