2013-02-28 5 views
0

Я прочел этот вопрос: How to move some changeset to a new branch in mercurialКак переместить базовую ревизию в другую ветвь в меркуриальном?

Но моя проблема немного отличается. Что у меня есть это:

NULL -> 1 -> 2 -> 3 -> 4 -> etc #default 
\ 
    10 #default (new head without parent) 
    \ 
    11 -> 12 -> 13 -> 14 #new-empty-branch 

Ofcourse Я должен совершил 10 оборотов в новом де-пустому ветви с самого начала, но я не сделал и теперь я хотел бы перейти версию 10 из ветви по умолчанию в # new-empty-branch. К сожалению, все изменения уже выдвинуты.

Это то, что я хотел бы закончить с:

NULL -> 1 -> 2 -> 3 -> 4 -> etc #default 
\ 
    10 -> 11 -> 12 -> 13 -> 14 #new-empty-branch 

Любые идеи?

ответ

0

Вы действительно хотите, чтобы то, что вы показываете на этой более поздней картинке? Это репозиторий с двумя корнями (две версии без родителей). Это не незаконно, но это ненормально, и это определенно не так, как люди ветвятся.

Если вы действительно этого хотите (и доверяете мне, что почти наверняка нет), вам придется изменить набор изменений 10 (поскольку именованная ветвь является хешированным компонентом ревизии) и каждый набор изменений после него (начиная с родительский хеш - хеш-компонент ревизии), и вы получите другой репозиторий, и каждый, кто клонировал его, должен будет удалить свои клоны и отложить.

В качестве альтернативы вы можете просто

hg update 10 
hg commit --close-branch 

и назвать его в день. Этого достаточно, чтобы заставить 10 перестать отображаться в hg heads