Используя Mercurial, как мне получить изменения по умолчанию в именованную ветку? - PullRequest
5 голосов
/ 20 января 2011

У меня есть центральный репозиторий Mercurial, содержащий историю, клонированную из репозитория SVN с использованием hgsubversion. Я извлек дополнительные коммиты, сделанные в репозиторий SVN с тех пор, как был клонирован исходный репозиторий hg; в настоящее время они находятся в ветке по умолчанию.

У меня также есть именованная ветка. Я клонировал эту ветку (используя hg clone -b mybranch) в моей локальной системе. Теперь я хочу получить изменения, которые существуют только по умолчанию, и сделать их доступными в моей именованной ветви. Очевидный способ сделать это - сделать hg update mybranch в репо, затем hg merge default и зафиксировать. Это кажется опасным - если я забуду обновить по умолчанию после того, как я закончу, все будущие извлечения из SVN приведут к изменениям в mybranch .

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

Какой правильный ответ здесь? Сделайте это на общем репо и просто будьте осторожны? Клонировать все и управлять филиалами локально? Или я упускаю более простое решение?

Ответы [ 2 ]

6 голосов
/ 21 января 2011

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

1 голос
/ 21 января 2011

Делайте это в общем репо и будьте осторожны.Или клонируйте весь общий репозиторий, выполните слияние там, а затем нажмите на клон только для филиалов.

...