Подтвердить что ты не робот

Windows и Mercurial изменяет случаи имен классов

Я унаследовал проект Java, который включает в себя несколько классов, которые не названы в соответствии с соглашением об именах UpperCamelCase.

Это особенно относится к аббревиатурам (например, HTMLButton, а не HtmlButton). Хотя я знаю, что есть некоторые расхождения во мнениях относительно использования CamelCase с сокращениями, мы хотели бы перейти только на заглавную букву для первой буквы аббревиатуры. (В настоящее время существует несколько одновременных соглашений об именах.)

Я бы хотел убрать это. Мы используем Mercurial как наш репозиторий исходного кода и работаем на машинах Windows (включая XP, Vista, 7). Однако, если я изменю имя класса из HTMLButton в HtmlButton, Mercurial распознает это как изменение имени класса, но не как изменение имени файла. (И впоследствии любые вытаскивания из Mercurial не меняют имя файла.)

Я знаю, что Windows работает в файловой системе с жестким диском, и я понимаю, что Mercurial берет эту функцию при приеме нажатий из окна Windows...

Итак...: - Есть ли параметр, который я могу изменить, чтобы заставить Mercurial использовать имена файлов с учетом регистра? - Есть ли параметр, который я могу изменить, чтобы заставить Windows использовать имена файлов с учетом регистра? (Это отдельные вопросы. Мой приоритет - заставить Mercurial принимать изменения имени файла, если это необходимо, мы можем вручную принудительно переименовать файлы в нашей среде IDE. Однако было бы предпочтительным прямое решение!)

(Если все остальное не удается, я могу попробовать переименовать HTMLButton в HtmlButtonA, зафиксировать и нажать и переименовать HtmlButtonA в HtmlButton, а также сделать еще один фиксатор и нажать... Однако я не уверен, какое влияние это окажет на Windows имена файлов, если кто-то еще сделал попытку после второго нажатия...)

4b9b3361

Ответ 1

Если вы выполните:

hg rename foo bar
hg rename bar Foo

Вам не нужно на самом деле совершать и нажимать до конца. Другими словами, ваш репозиторий не будет знать об этом обходном пути для Windows.

Другой вариант - переименовать файл в Windows, а затем вызвать:

hg rename foo Foo --after

чтобы уведомить Mercurial об этом изменении.

Источник: http://hgbook.red-bean.com/read/mercurial-in-daily-use.html#id364064