2014-11-10 2 views
0

У меня есть старый ртутный репозиторий для проекта, который имеет изменения до определенной даты, и у меня есть другой репозиторий для того же проекта со всеми изменениями после этой даты.Слияние двух меркурических репозиториев того же проекта

Я хочу объединить эти два репозитория, чтобы история отражала, что первая фиксация в последнем репозитории является дочерним элементом последнего коммита в прежнем хранилище.

Возможно ли это? Или мне просто нужно объединить обе головы?

ответ

0

Чтение здесь: http://blog.experimentalworks.net/2009/03/merge-vs-rebase-a-deep-dive-into-the-mysteries-of-revision-control/
и здесь:
https://www.mercurial-scm.org/wiki/RebaseExtension

Я похож, что я хотел достичь можно сделать с помощью перебазирования, с некоторыми оговорками.

Я вывожу изменения из более нового репо в более старое репо. Это приводит к двум голосам, поскольку оба репозитория имеют только ветвь «default». В папке старшего репо, я побежал:

hg pull -f ../newer-repo 

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

hg phase -f -d -r 15 16 ... 

Наконец, я могу теперь перебазироваться, потому что история тянут в от более новых репо начинается с того же состояния, как последний список изменений в старом репо.

hg rebase -s 15 -d 14 

У меня есть одна история и никаких конфликтов. Это, вероятно, не будет работать для всех, но в этом узком обстоятельстве это было именно то, что было необходимо.