hg: как перенести вновь созданную ветку обратно в центральное хранилище? - PullRequest
27 голосов
/ 02 августа 2010

Я клонировал центральное хранилище через

hg clone my_project my_project_1

затем после переключения на вновь созданный репо я пометил как новую ветку

hg branch v1

Находясь внутри нового клона, я выпустил

hg ci -m "branch created"

но когда я попытался перенести изменения обратно в исходный репозиторий, я клонировал из Я получил эту ошибку:

abort: push creates new remote branches: v1!

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

1 Ответ

60 голосов
/ 03 августа 2010

Это зависит от используемой вами версии Mercurial.Раньше это была команда hg push -f ... или hg push --force ... для принудительного создания новой ветки в удаленном хранилище (что обычно нормально).

Однако использование -f также позволяет создавать новые головки в удаленном хранилище (обычно , а не OK), поэтому в текущих версиях Mercurial (1.6 и выше) есть --new-branchопция hg push, которая позволяет вам создавать ветку, но не создавать новую головку, поэтому команда:

hg push --new-branch

Вы также можете ограничить толчки только той веткой, с которой вы работаетефлаг -b, так:

hg push --new-branch -b v1
...