Давненько я ничего не писал, но для того была достойная причина - 22 декабря я все таки защитил кандидатскую, что собственно и забирало уйму времени последние месяцы. Теперь я полноправный к.т.н.
Сегодня маленький пост о том как сконвертировать имеющийся репозиторий Subversion в репозиторий Mercurial. Думаю что в необходимости перехода на Mercurial я постепенно смогу убедить своих читателей. Итак исходная позиция:
1. Имеется репозиторий svn лежащий на диске, пусть здесь: /[svn_repos_path]/svnrepo;
2. Хочется заиметь репозиторий Mercurial /[hg_repos_path/hgrepo со всей историей накопленной в Subversion, фактически импортировать все ревизии из svn в Mercurial.
Нет ничего проще.
1. Создаем новый репозиторий Mercurial:
mkdir /[hg_repos_path/hgrepo
cd /[hg_repos_path/hgrepo
hg init
cd /[hg_repos_path/hgrepo
hg init
2. Разрешаем расширение convert. В Debian это делается так: в файл /[hg_repos_path/hgrepo/.hg/hgrc добавляем строчки:
[extensions]
convert=
3. А теперь выполняем собственно конвертирование:
cd /[hg_repos_path/hgrepo
hg convert file:///[svn_repos_path]/svnrepo .
Все. Mercurial выдает последовательность ревизий, и загоняет все что было в SVN репозитории в новый репозиторий Mercurial. Можно пользоваться ;)
От себя еще добавлю, что нужно удалить уже ненужные каталоги .svn.
ОтветитьУдалить$ find . -name .svn | xargs rm -fr
каталоги .svn у меня не создались и удалять их нет необходимости, а вот при конвертировании имен файлов с русскими символами вышла абаракадабара.
ОтветитьУдалитьДа, с русскими именами файлов в Mercurial имеется косяк.
ОтветитьУдалитьпофиксили уже "русские" файлы?
ОтветитьУдалить