Как исправить чувствительность к регистру в репозитории Windows Git

Мы разрабатываем исключительно на машинах Windows и размещаем MSysGit на машине Werver 2008. Мы используем Redmine (BitNami Redmine Stack) в качестве нашей системы отслеживания проблем/управления проектами.

Хотя у нас нет проблем с Git и машинами для разработки, у нас ДЕЙСТВИТЕЛЬНО есть проблема с тем, как репозиторий отображается в Redmine, из-за того, что выглядит как проблемы с чувствительностью к регистру.

Репозиторий Redmine отображает «дубликаты» (точнее, не дублируют точно) деревья, как показано ниже, предположительно из-за того, что некоторые файлы были зафиксированы с путями в нижнем регистре (по какой-то неизвестной мне причине).

+-Develop
|  |
|  +-Library .....
|  |
|  +-AutomatedTests .....
|
+-develop
   |
   +-library .....

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

Есть ли (простой, учитывая, что это очень большой репозиторий) способ: а) сделать redmine нечувствительным к регистру при отображении дерева. или б) исправить проблему с путями в нижнем регистре (мы стандартизируем случай Camel)


person d sharpe    schedule 20.12.2011    source источник


Ответы (2)


Вы пытались добавить ignorecase = true в .git/config?

person zoran119    schedule 20.12.2011
comment
это уже установлено, я думаю, что это может быть связано с отображением Redmine таким образом, я знаю, что он извлекает наборы изменений git и заполняет таблицы MySql на их основе. Так что, может быть, дело в том, что Redmine / MySql видят пути разными, тогда как Windows этого не делает, поэтому мой вопрос действительно в том, что я могу сделать с Redmine или начать переименовывать файлы в GIT? - person d sharpe; 21.12.2011
comment
ignorecase в git config предназначен для сравнения регистра при сравнении файлов. - person Robert Christ; 16.05.2014
comment
@RobertChrist На самом деле, ignorecase действительно позволяет git видеть изменения регистра имени файла. Я только что подтвердил это несколько минут назад. Однако этого недостаточно для решения проблемы, если вы делаете переименования в проводнике Windows. (так как это только заставляет его видеть новый файл, что приводит к двум версиям в репо, вместо того, чтобы распознавать его как простое переименование/изменение регистра) - person Venryx; 07.04.2017

Redmine увидит их как разные места. Несмотря на то, что у вас включено игнорирование регистра, всегда выполняйте табуляцию при входе в каталоги и указании файлов. Используйте git filter-branch, чтобы зафиксировать корпус. Это изменит то, на что указывают все ссылки, но это может быть полезно сделать на этом этапе.

person Adam Dymitruk    schedule 20.12.2011
comment
мы используем черепаховый клиент git и клиенты smartGit и прибегаем к командной строке только тогда, когда это необходимо, и никогда не использовали git tab-completion, поэтому не уверены, насколько это полезно. - person d sharpe; 22.12.2011
comment
Преимущество будет заключаться в том, что у вас будет согласованное именование и не будет дублирования, если вы завершите вкладку. - person Adam Dymitruk; 22.12.2011
comment
К сожалению, я не могу навязать это нашей команде разработчиков. Также нам нужно сохранить всю историю файлов и не требовать --follow в журнале для отслеживания истории через переименования (ну, это все в идеальном мире, иначе я могу посмотреть на исправление дисплея redmine) - person d sharpe; 22.12.2011