После перехода с git на mercurial (не мое личное предпочтение :) я столкнулся с проблемой: hg convert
преобразует ветки git в закладки. Есть ли способ преобразовать закладки в именованные ветки hg? Нужен он вообще или нет и почему? Благодарю вас!
Преобразование закладок hg в именованные ветки
Ответы:
Ветки Git и закладки hg — это, по сути, одно и то же (ссылка на один набор изменений), поэтому они были преобразованы таким образом. Закладки ведут себя почти так же, как ветки git — они продвигаются по мере того, как вы фиксируете, и т. д. (концепции отслеживания веток нет, но вы можете получить аналогичные результаты, используя remotebranches расширение). Многие люди вообще не используют именованные ветки в Mercurial — они используют закладки и/или анонимные ветки.
Названные ветки Hg очень разные — имя — это неотъемлемая часть истории. Невозможно (автоматически) преобразовать ветку git в именованную ветку hg, потому что ветка git называет только кончик ветки - у вас нет возможности узнать, какие другие наборы изменений должны быть частью ветки.
Если вы действительно хотите использовать именованные ветки с этого момента (и я настоятельно рекомендую это - лично я предпочитаю, чтобы каждая задача выполнялась в отдельной именованной ветке), я бы предложил просто запустить именованную ветку с тем же именем в каждой текущей закладке ( затем вы можете удалить закладку).
Вы можете вручную пройти и пересадить или привить наборы изменений в новые именованные ветки, но это удалит связь с набором изменений git, что важно, если вы используете hg-git, а не конвертируете. Хотя graft может сохранять некоторую ассоциацию, поскольку он реализован с использованием средств слияния hg.
branch('branchname') + parents(branch('branchname'))
. 25.01.2013[revsetalias]
вашего hgrc:feature_branch($branch) = branch($branch) + parents(branch($branch)) + children(branch($branch))
. 25.01.2013