ртутное повреждение репозитория

Я новичок в Mercurial, около 2 месяцев. Мы используем его в новом проекте и пытаемся создать новое репо, клон ствола, который будет использоваться в качестве «ветки» выпуска.

Мы используем центральное репо, все тянут / отправляют в / из него через https, используя hgwebdir.cgi. Использую на сервере hg 1.5.4 и «клиентов» разные версии, 1.5.2 -> 1.6.3. Все было нормально. Клон был хорош (hg verify after clone), единственная проблема в том, что очень скоро это репо было испорчено (пусто или отсутствует; в манифестах не найдено).

Основное репо в порядке, только этот релиз очень скоро сломается. Имена репозиториев (имена папок и опубликованные имена, все находятся в одной корневой папке):
AB - для ствола
ABRelease - для репозитория выпуска
(прочтите что-нибудь в документации, который звучал так, как будто это может быть проблемой - см.

Еще одна очень странная вещь заключается в том, что проверки, сделанные только для магистрали (A.B), считаются доступными в ветке выпуска и отображаются как ошибки при проверке (в манифестах не найдены). Не понимаю, как они туда попали.

Какие-нибудь подсказки?


person florin    schedule 16.09.2010    source источник
comment
Вы работаете в Windows? Тогда это может быть дубликат stackoverflow.com/questions/3453216/   -  person Rudi    schedule 16.09.2010


Ответы (1)


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

«Перекрестный разговор» между вашими двумя репозиториями очень важен и не должен происходить, если кто-то по ошибке не использовал общий ресурс расширение.

Что, если вы попытаетесь создать клон A.B.Release, используя clone --pull, а не клон самостоятельно?

person Ry4an Brase    schedule 16.09.2010
comment
yes --pull решает проблему, поскольку обычное вытягивание использует жесткие ссылки для создания нового репо, и с моей точки зрения это совершенно неправильно. По умолчанию этого делать не следует, поскольку нельзя создавать новое репо только для того, чтобы иметь одни и те же данные в двух местах, где они действительно хотят независимых репозиториев. - person florin; 17.09.2010
comment
Жесткие ссылки - это путь, программные ссылки можно использовать только для того, чтобы обмануть людей, заставив их думать, что один файл действительно находится в другом каталоге, потому что они привыкают к структуре каталогов. Внутренне, при использовании жестких ссылок, Linux знает, что файлы копируются, и поэтому сохраняет только одну копию с методом, известным как «копирование при записи», что означает, что всякий раз, когда одна из копий получает изменения, файл действительно копируется. Таким образом, вы не получите никаких улучшений при использовании softliks + вы запутаетесь в hg и повредите файлы. - person linuxero; 09.08.2012