Mercurial ветвь - это именованная сущность, которая состоит из всех коммитов, содержащихся в ветке. Таким образом, чтобы дублировать существующую ветвь, вы также должны дублировать все ее коммиты на новые коммиты, которые находятся в новой ветке. Затем мы входим в метафизические аргументы об идентичности фиксации. Вероятно, вообще не стоит go здесь, но если вы делаете хотите go здесь, используйте hg graft
to copy все необходимые коммиты в новую ветвь.
Ветвь Git состоит из имени, содержащего необработанный коммит ha sh ID. Поэтому дублирование ветки Git под новым именем тривиально. Обратите внимание, что набор ветвей, содержащих любую конкретную фиксацию, динамически изменяется со временем: ветвь, которая была только на feature/tall
, теперь может быть только на master
, даже если эта фиксация все еще остается той же фиксацией, даже с помощью большинства этих метафизических аргументов. , (Только аргумент «нет идентификаторов во времени» позволяет нам утверждать, что это не тот же коммит.)
Еще один способ выразить это - ветки Mercurial на самом деле означают что-то, но Git нет. Если вам нужны настоящие ветки, вы не можете использовать Git в первую очередь. Не пытайтесь импортировать причудливость Git в Mercurial: вы просто сделаете свою жизнь несчастной.
Тем не менее, Mercurial содержит DAG, как Git. Если вы используете закладки Mercurial, они работают как ветки Git. Тогда, вероятно, разумнее просто использовать закладки и покончить с этим.
Если ничего не помогает, см. hg graft
.