2010-08-02 2 views
26

я клонировал centeral репозитория черезhg: как я могу направить вновь созданную ветку обратно в центральный репозиторий?

hg clone my_project my_project_1 

затем после перехода к вновь созданной репо я помеченная как новая отрасль

hg branch v1 

В то время как внутри нового клона я выпустил

hg ci -m "branch created" 

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

abort: push creates new remote branches: v1! 

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

+0

С распределенным контролем версий вы (обычно) проверяете все, а не только ветку. Также: «централизованный репозиторий» возможен, но каждый разработчик, проверяющий репозиторий, имеет клон центрального репозитория. –

ответ

52

Это зависит от версии 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 
+2

Похоже, что в отличие от git, вам нужно создать фиксацию, чтобы иметь возможность нажать: 'hg ci -m« Создание ветки »' – NoBugs

+0

@NoBugs В этом вопросе OP сказал, что они уже это сделали. –

Смежные вопросы