Использование расширения Hg Convert, опция Branchmap - PullRequest
2 голосов
/ 27 сентября 2011

У меня есть 2 репозитория Mercurial RepoA и RepoB , 2 человека работали независимо на каждом из своих репозиториев, RepoA имеет только одну ветку (по умолчанию), но 9 коммитов, RepoB имеет 2 ветви: Default и Experiment1, каждая из которых имеет около 30 коммитов. Теперь выясняется, что RepoB является подмножеством RepoA, то есть многое из RepoB может быть помещено в RepoA. Я хотел бы вытащить (импортировать) все содержимое RepoB в ветку в RepoA. Я не хочу, чтобы при импорте шла ветка RepoA по умолчанию, а вместо этого именованная ветка в RepoA, называемая Developer1WIP . Мне конкретно нужно знать

  1. Как создать именованную ветку (Developer1WIP) в RepoA и импортировать ВСЕ RepoB в ветку Developer1WIP на RepoA

Я считаю, что расширение HgConvert с Branch-Map - хороший путь вперед. «Карта ветвления - это файл, который позволяет вам переименовывать ветку, когда она выводится из любого внешнего хранилища.» ....

  1. что это за файл?
  2. где это должно быть создано и что должно быть в нем?
  3. Могу ли я получить некоторые примеры того, как именно использовать эту команду в Windows?

,

1 Ответ

3 голосов
/ 27 сентября 2011

Все описано в вики Mercurial, вот выдержка из страницы ConvertExtension :

...

- branchmap

С версии 1.3

Карта ветвления - это файл, который позволяет вам переименовать ветку, когда она вводится из любого внешнего хранилища. Когда используется в в сочетании с монтажной картой, это позволяет мощную комбинацию помочь исправить даже самые плохо управляемые репозитории и включить их в хорошо структурированные репозитории Mercurial. Карта ветвей содержит линии вида

original_branch_name new_branch_name

"original_branch_name" это название ветви в исходном хранилище, а "new_branch_name" имя филиала - хранилище назначения. Это можно использовать переместить код из одного репозитория из "default" в именованную ветвь.

Помните, что "default" определяет ветку Mercurial по умолчанию репозитории, которые не отображаются по умолчанию в журнале, заголовках или команды родителей. Чтобы стереть именованные маркеры веток, конвертируйте их в "default" с картой ветвления типа

original_branch_name default

Ревизии все еще будут там, но нет больше привязан к оригинальной названной ветви.

...

Таким образом, в основном вы создадите текстовый файл, содержащий это:

default Developer1WIP
Experiment1 Developer1WIP

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

Затем введите команду convert:

hg convert ORIGINAL_REPO CONVERTED_REPO --branchmap MAP.TXT
...