Mercurial Case складной выпуск - PullRequest
       29

Mercurial Case складной выпуск

2 голосов
/ 25 августа 2011

Это не единственная проблема, которой не было в прошлом, но ни одно из решений не помогло мне до сих пор.

Мой случай - Огромный репозиторий, поддерживаемый Perforce (центральным элементом моей компании).СКМ).Теперь они что-то меняют, и все отдельные команды управляют своим собственным SCM и используют основное выступление только для регулярных обновлений (не спрашивайте меня, почему - я не могу сказать об этом)

однако моя проблема - мы перешли кMercurial для проектов нашей команды.

Его огромное количество - около 300 тыс. Файлов и возможность кросс-платформенной компиляции.

Установленное мной ртутное хранилище хорошо работает с Linux, но в Windows я получаю ошибку сворачивания кейсаи не могу оформить или клонировать репозитории.

Я попробовал решения из https://www.mercurial -scm.org / wiki / CaseFolding

и результат выглядит следующим образом

  1. Расширение hgfold - не работает - оно вызывает какое-то неизвестное исключение Python, и кто-то сталкивался с этой проблемой, и разработчик расширения знает об этом, но не имеет немедленного исправления.

  2. Невозможно просто переименовать файлы, наше хранилище сломается, мне придется жить с тем же именем файла, а в Linux это прекрасно работает и используется.Так что я не знаю, возможно ли переименование.

  3. Perforce справляется с этим хорошо, но, как я уже сказал, здесь я ничего не скажу.

Так есть ли другой выход?Может ли SVN хорошо справляться с делом ??Любая помощь очень полезна для меня.

1 Ответ

2 голосов
/ 27 августа 2011

В главе книги Mercurial есть глава Чувствительность к регистру

Просто найдите соседний ящик с Linux или Unix, клонируйте проблемный репозиторий и используйте команду Mercurial hg rename, чтобы изменить имена любые оскорбительные файлы или каталоги, чтобы они больше не вызывали случай складывания конфликтов. Подтвердите это изменение, hg pull или hg push it через систему Windows или MacOS и обновите hg до версии с неконфликтующими именами.

Проблема в том, что на самом деле не существует работающего автоматизированного способа разрешения конфликтов между делами. Имена файлов часто упоминаются в других файлах, таких как Makefiles, или включают операторы или чтения конфигурационного файла в источнике. Таким образом, любой способ решить это автоматически склонен что-то сломать.

Из комментариев к вышеприведенным главам несколько советов:

Grant Baillie 2009-08-13 На Mac вы также можете сделать этот ремонт на вашем компьютер путем создания образа диска, содержащего регистр символов файловая система. Запустите Дисковую Утилиту (в / Приложения / Утилиты), нажмите Файл -> Создать -> Пустой образ диска ... и выберите «Mac OS Extended» (Журнал, с учетом регистра) "как формат тома.

и вы могли бы использовать

find . -print | sort -f | uniq -di 

в чувствительной к регистру файловой системе, чтобы найти все имена файлов, которые конфликтуют в регистре.

...