У меня есть Подвижный репозиторий, который находится в странном состоянии теперь. Это - то, на что это похоже в TortoiseHG:
Я не думал, что это будет возможно. Пересмотр 54 имеет родителя "-1 (000000000000)" (т.е. ничто). Существует ясно что-то, что я еще не понимаю о Подвижном, может любой сообщать мне то, что это означает - и что, должно быть, произошло, чтобы это вошло в это состояние. Насколько я знаю, это только имело материал, который, продвинутый и вытягивают от него - и никто не использовал дурацких расширений.
Изменения 54 и 55 просто добавляли теги, но если я 'обновляю-C', к пересмотру 54 я заканчиваю ТОЛЬКО с .hgtags файлом.
Я сделал клон из пересмотра 53 для фиксации этого. Но я понял бы то, что произошло здесь, таким образом, я могу избежать его происходящий снова.
Если вы посмотрите на определение набора изменений , вы увидите:
Каждый набор изменений имеет ноль, один или два родительских набора:
- Он имеет два родительских ревизий, если фиксация была слиянием.
- У него нет родителя, если набор изменений является корнем в репозитории.
В репозитории может быть несколько корней (обычно только один), каждый представляет начало ветки .«Обновление» обратно к набору ревизий, у которого уже есть дочерний элемент, изменение файлов и последующее принятие создает новый дочерний набор ревизий, таким образом, начинается новая ветвь. Филиалы могут быть названы.
Так что, возможно, это то, что вы сделали:
или:
- close-branch
, Ry4an (настоящий специалист по Mercurial;)) вмешивается и комментирует:
- close-branch
doesn ' Я ничего не делаю, кроме как скрыть ветку из списка, и это будет отменено в следующий раз, когда вы сделаете фиксацию в этой ветке. Это не создаст множественных корней.VonC прав в своем диагнозе, множественные головы .
Но никакая комбинация «update
» и «commit
» не приведет вас в это состояние.
Чтобы получить несколько корней, обычно делали «hg pull
» из репо и использовали- force
, чтобы переопределить предупреждение «несвязанные репозитории
».
(«без родителя», то есть родительские идентификаторы установлены на 00000, см. «за кадром» :
(источник: red-bean.com )
)
Другой способ увидеть это - выполнить hg update null
после фиксации rev. 53. Например, рассмотрим эту последовательность:
hg init foo
# create some files
hg addremove
hg commit -m "Revision 0"
# edit, edit, edit
hg commit -m "Revision 1"
hg update null
hg tag -m "Create tag v1.0.0.0" "v1.0.0.0"
На этом этапе hg log
покажет родительскую версию 2 как -1: 0000000000. Поскольку hg update null
очищает рабочий каталог, единственным файлом в нем будет .hgtags
(как вы и видели).
Были ли у вас другие теги до ред. 53? Если мои подозрения верны, их не будет в вашем rev. 54 .hgtags
.