Столкновение корпуса Mercurial HG со складывающимся корпусом?

  1. сначала у меня есть имя файла readme
  2. затем я меняю его на README
  3. совершить
  4. толкать

хорошо, проблема в том, что есть два файла: readme и README

как удалить ридми из репозитория?

когда я делаю обновление, я получаю сообщение об ошибке: столкновение между файлами readme и README


person Adam Ramadhan    schedule 19.08.2010    source источник
comment
Возможный дубликат Разрешение Mercurial Case-Folding Collision в Windows   -  person StayOnTarget    schedule 11.08.2017


Ответы (5)


Mercurial может обрабатывать имена файлов в одном и том же каталоге, которые различаются только регистром в своих репозиториях (каталог .hg на верхнем уровне вашего репозитория). В файловых системах, чувствительных к регистру (большинство в Unix), он также может обрабатывать эти файлы в рабочем каталоге. Однако в системах, которые просто сохраняют регистр, ОС не позволяет вам иметь два файла в одном каталоге, которые отличаются только регистром, и Mercurial предупреждает вас об этом (как вы видели).

Чтобы обойти это ограничение вашей ОС, проверьте свой клон в файловой системе с учетом регистра, удалите файл, а затем зафиксируйте/отправьте. До тех пор, пока люди, работающие с окнами, не hg updating относятся к ревизии, в которой есть коллизия, с ними все будет в порядке (поскольку все в порядке в репозитории, но не в их рабочем каталоге).

person Ry4an Brase    schedule 19.08.2010
comment
спасибо :) Кстати, проверьте свой клон в файловой системе с учетом регистра? - person Adam Ramadhan; 21.08.2010
comment
файловая система с учетом регистра = Linux/BSD - person Vlad; 22.03.2012
comment
Согласованный. Я виню разработчиков FS, которые считали допустимыми имена файлов с потерями. - person Ry4an Brase; 12.06.2013
comment
Просто добавьте это в качестве комментария для других, которые попадают сюда в поисках помощи. В последней версии mercurial, когда вы столкнулись с коллизией при свертывании регистра при слиянии, теперь вы можете использовать hg rename (даже в ОС, нечувствительной к регистру), чтобы изменить регистр в одной из головок, чтобы она соответствовала другой. Вы сможете объединиться после совершения переименования. - person Kindread; 16.10.2013
comment
Мне помог комментарий про обновление до ревизии с коллизией! - person Zarepheth; 19.05.2016

Этот вопрос является дубликатом и может быть сложен в Разрешение Mercurial Case-Folding Collision в Окна

Я согласен с комментарием, что просить кого-то работать в чувствительной к регистру файловой системе немного тяжело, даже с Cygwin. Самое чистое решение, предполагающее два файла, и кажется:

  1. hg вернуться к главе объединяемой ветки, которая
  2. hg удалить // затем зафиксировать и т. д.
  3. проверьте историю файлов на . Возможно, в переименованный файл были неправильно внесены какие-то дополнения.
  4. Если это так, вручную добавьте эти изменения в
person Chip McCormick    schedule 04.03.2013

Предположим, вы хотите, чтобы readme был README.

hg mv readme foofile
hg mv foofile README

Сделайте это и зафиксируйте эти изменения, и репо снова можно будет использовать.

person Chris Marisic    schedule 17.09.2013

Если это было переименование, то abc.txt переместился в Abc.txt.

Будет ли работать следующее?

Возьмите патч, проверьте свежий код, примените патч поверх него. затем зафиксируйте и нажмите

person user2324323    schedule 26.04.2013

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

Тем не менее, я все еще мог Update пересматривать до и после него. Таким образом, если вы столкнулись с этой проблемой в Windows (или аналогичной файловой системе, нечувствительной к регистру) при простом Updateing к определенной ревизии, вы можете обойти проблемную ревизию, Updateing к одной до или после нее.

person Zarepheth    schedule 19.05.2016