Подтвердить что ты не робот

Разветвляющиеся и удаленные головки в Mercurial

Я создал новую ветку, используя эту команду: hg branch new_branch

После первой фиксации новой ветки ветка по умолчанию становится неактивной. Если это будет нажато, центральный репозиторий будет иметь только одну головку, которая принадлежит новой ветке.

Когда мой коллега нажимает свои коммиты на ветку по умолчанию, он получит эту ошибку:

pushing to ssh://...
searching for changes
abort: push creates new remote heads!
(did you forget to merge? use push -f to force)

Есть ли что-то плохое в том, чтобы заставить толчок? Почему удаленные головки плохо?

Как вы работаете удаленно на отдельных ветвях и нажимаете на один репозиторий?

4b9b3361

Ответ 1

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

В этом случае, однако, вы создали именованный филиал, что означает, что вы намеренно вводите и делитесь новой головой, и вы можете отказаться от предупреждения как информационного. Используйте hg push --new-branch, чтобы заставить его (или -f до версии 1.6).

Ответ 2

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

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