2010-03-14 1 views
1

Я использую hg-subversion, и у меня есть 2 разных hg-репозитория один из нашего svn-туловища, а один из ветки ствола , Я хотел бы как-то связать их. В какой-то момент истории оба хранилища Hg будут одинаковыми, есть ли способ присоединиться к ним?Mercurial Как слить 2 репозитория, которые имеют общий предок, но не являются клонами одного и того же репо.

Другими словами, существует ли способ связывать хранилища изнутри Hg?

Техника, которую я использую в настоящее время, заключается в том, чтобы просто экспортировать второй репозиторий поверх рабочей копии ревизии, которую они разделяют, а затем зафиксировать эту рабочую копию как ветвь в Hg, но я потеряю историю таким образом.

Любой совет будет здорово

+0

Это дубликат: http://stackoverflow.com/questions/12843/how-to-combine-two-projects-in-mercurial –

ответ

1

Вы можете попробовать импортировать два РЕПО в один, как будто связаны между собой, то их слияние. (Когда вы говорите, что они имеют общий предок, вы имеете в виду, что эти предки имеют одинаковый идентификатор версии? Если это так есть хороший шанс, что это будет работать хорошо.)

hg clone repoA 
hg pull -f repoB # may not need -f 
hg merge 
+0

У них есть общий идентификатор ревизии SVN да, поскольку на самом деле это ветвь , – sylvanaar

1

Вы можете повторно клон подрыва репозиторий, предоставляя корень репозитория Subversion в качестве аргумента вместо соединительной линии или одной из ветвей? Я использовал hg clone svn+ssh://foo/bar/baz один раз, где svn+ssh://foo/bar/baz/trunk был туловищем, а был ветвью, и в конце у меня было две ветви с именем в Mercurial, ветвь «по умолчанию», представляющая сундук Subversion, и ветвь «quux», представляющая ветку Subversion с подобным именем.

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

+0

Спасибо за предложения. Я определенно попробую их – sylvanaar