среда, 16 января 2013 г.

Конвертация bzr в hg - проблема с множеством branch

После конвертации репозитория bzr в hg можно наблюдать наличие большого числа branch в новеньком репозитории hg, хотя никаких веток в bzr как бы и не было. Возникает это от того, что bzr считает названием ветки (сюрприз!) имя каталога проекта в момент комита. И если кто-то сделал себе checkout в каталог с именем, отличающимся от имени проекта, он сделал ветку. И наличие этих веток никак не посмотреть в bzr. Или я просто не нашел среди обилия команд как это сделать.

Как решить? Очень просто. Делаем первоначальную конвертацию bzr->hg:

hg convert -s bzr project1 project1-hg

Выясняем, какие ветки у нас получились в hg:

hg branches

Создаем простой текстовый файл и устанавливаем в нем соответствие между левыми ветками и веткой default:

project1 default
project-1 default

Теперь делаем окончательную конвертацию, указав дополнительно только что созданный файл в опции branchmap:

hg convert -s bzr project1 project1-hg --branchmap bz1

Теперь в новеньком репозитории hg должна быть только одна ветка default.