Могу ли я сделать Subversion + TortoiseSVN без учета регистра для Windows?

Я использовал Subversion для управления кодом с TortoiseSVN для взаимодействия с сервером в течение последних нескольких месяцев, и в целом все шло отлично! Однако иногда моя интегрированная среда разработки FoxPro без предупреждения меняет регистр расширения файла, где « program.prg » становится « program. PRG »). TortoiseSVN, очевидно, принимает это, чтобы означать, что первый файл был удален, помечен как «отсутствующий», а второй имя выглядит как «не версионный», что наносит ущерб моей способности отслеживать изменения в файле. Я понимаю, что Subversion берет свое начало в чувствительном к регистру мире * nix, но есть ли способ контролировать это поведение в Subversion или TortoiseSVN, чтобы оно не зависело от имени файла при использовании с Windows?

18.08.2008 13:27:00
Почему вы не можете просто переименовать все эти файлы в .PRG, раз и навсегда? Или FoxPro также случайным образом изменит его на строчные?
Lasse V. Karlsen 22.08.2008 13:27:23
8 ОТВЕТОВ
РЕШЕНИЕ

К сожалению, Subversion чувствительна к регистру. Это связано с тем, что файлы из Subversion можно извлекать как в чувствительных к регистру файловых системах (например, * nix), так и в нечувствительных к регистру файловых системах (например, Windows, Mac).

Этот скрипт ловушки перед фиксацией может помочь вам избежать проблем при проверке файлов. Если это не решит вашу проблему, лучше всего написать небольшой скрипт, чтобы убедиться, что все расширения в нижнем регистре, и запускать его каждый раз перед тем, как регистрироваться. Это будет PITA, но, возможно, ваш лучший выбор.

20
22.06.2017 12:40:31
TortoiseSVN имеет функцию регулировки регистра. Если TSVN обнаружит, что имя файла в рабочей копии было переименовано только в случае, оно восстановит регистр в файле. (Инструменты командной строки SVN этого не делают.)
myron-semack 1.10.2009 14:19:31
Этот сценарий дал файл не найден, но правильный автор ссылается здесь Стефан; stackoverflow.com/questions/5393395/…
AnneTheAgile 11.10.2012 22:23:40

Я использую TortoiseSVN с VFP, и он в основном легко справляется с переворотом. Единственный раз, когда этого не происходит, у меня открывается файл в IDE, когда я пытаюсь выполнить коммит: блокировка файла, которую держит VFP, смущает его. Это где ваша проблема, или есть другие проблемы?

В прошлом году я сделал презентацию на FoxForward об использовании VFP с Subversion: большая часть презентации была посвящена командной строке, но в конце есть пара слайдов, на которых есть ссылки на инструменты, которые помогут вам работать с Subversion в VFP. http://docs.google.com/Presentation?id=dfxkh6x4_3ghnqc4

2
22.08.2008 13:25:26
Спасибо за понимание! Таблицы, формы и т. Д., Обработанные в VFP, являются проблемой для работы в SVN.
Kit Roed 11.09.2008 20:14:01

Кит, вы прокомментируете выше, что двоичные исходные файлы VFP трудны для работы в Subversion. Ссылка, которую я привел выше, упоминает пару инструментов, чтобы упростить ее, но я работаю с утилитой Christof Wollenhaupt TwoFox - она ​​преобразует проект VFP в текстовый. Вы должны запустить его вручную, но у меня нет проблем с этим.

http://www.foxpert.com/docs/cvs.en.htm

1
15.09.2008 13:53:15
Спасибо Гаррет, однако ссылка на скачивание TwoFox не работает на странице, на которую вы ссылаетесь. Инструмент конвертации был бы очень удобен, так как я этим утром занимался вопросами FoxPro-Subversion! В любом другом месте, где я мог бы получить возможность скачать TwoFox или есть лучший вариант?
Kit Roed 16.09.2008 13:37:39
Извините, я не видел этого раньше - для протокола, я только что проверил сайт Кристофа, и загрузка все еще хороша. Я предполагаю, что это был просто временный сбой ....
SarekOfVulcan 4.03.2009 18:23:34

Я считаю, что случайные прописные и строчные буквы на расширениях не случайны вообще. Я помню тестирование на этом. Если вы измените программу из менеджера проекта. Нажав на кнопку Изменить, скажем. А затем сохраните изменения расширения нижнего регистра. Если вы выполните команду изменения из командного окна и сохраните изменения, расширение будет прописным. По всей видимости, программисты в Microsoft не беспокоились о том, что расширение будет таким же.

1
24.02.2009 14:00:17
Это подтверждает образец, который я видел, так как я отправил этот вопрос, спасибо.
Kit Roed 24.02.2009 15:06:27

Windows поддерживает чувствительность к регистру, но вы должны отправить правильные флаги POSIX на CreateFile из Windows API! Может потребоваться изменить раздел реестра (в SFU / Tools для Unix и Ultimate Windows 7 эта запись реестра уже установлена, поэтому Windows поддерживает имена файлов с учетом регистра).

Windows спроектирована на основе Unix, но такие вещи, как Explorer.exe и другие программы, предназначены для запрета чувствительности к регистру для обеспечения обратной совместимости и безопасности (в основном, когда речь идет о DOS, выполняющем notepad.exe, а не NOTEPAD.EXE, где все заглавные буквы являются вирусами). или вредоносное ПО).

Но Vista + имеет атрибуты безопасности, что делает это устаревшим.

TorribleSVN просто не поддерживает передачу этого флага posix при создании и переименовании файлов.

4
20.05.2010 20:32:08

Нет, ты точно не можешь. SVN является чувствительным к регистру , если Вы не должны были переписать код как - то ... он является открытым исходным кодом.

0
17.02.2012 22:20:28

У нас была похожая проблема, и я нашел лучшее решение, чем представленные здесь, поэтому я делюсь этим сейчас:

  • Для коммитов , выполняемых вручную , теперь TortoiseSVN исправляет регистр имен файлов автоматически: он переименовывает локальные файлы в соответствии с регистром версионных файлов (просто открывая окно фиксации по этому пути), поэтому с этим проблем быть не должно .

  • Для автоматических коммитов вы не можете использовать TortoiseSVN, так как для этого требуется вручную подтвердить коммит (он открывает окно фиксации с конкретным сообщением, но вам все равно нужно нажать кнопку ОК). Но если вы напрямую используете Subversion (svn) для автоматической фиксации, тогда у вас будет проблема с учетом регистра для этой фиксации, поскольку Subversion по-прежнему чувствительна к регистру ...

Как решить эту проблему для автоматических коммитов? Ну, я попробовал смешанный подход: создание пакетного файла с именем , FixCaseSensitiveFileNames.batкоторый вы можете вызвать прохождение пути , который вы хотите исправить , прежде чем совершить, например: call FixCaseSensitiveFileNames.bat C:\MyRepo. Пакетный файл открывает TortoiseSVN для ручной фиксации, и он автоматически исправляет имена файлов, но затем закрывает окно фиксации после предварительно определенной паузы, поэтому вы можете продолжить автоматическую фиксацию с уже фиксированными именами файлов с учетом регистра. Пауза эмулируется с помощью локального пинга, и вы можете изменить продолжительность, изменив -nаргумент, который является числом попыток. Если вы не сделаете достаточно длинную паузу, существует риск закрыть окно TortoiseSVN, прежде чем оно исправится. Вот код командного файла :

@echo off
REM *** This BAT uses TortoiseSVN to fix the case-sensitive names of the files in Subversion
REM *** Call it before an automated commit. The Tortoise commit fixes this issue for manual commits,
REM *** so the trick is opening the commit window and close it automatically after a pause (with ping).
REM *** %1 = path to be fixed

start TortoiseProc.exe /command:commit /path:"%1"
ping localhost -n 10 >nul
taskkill /im TortoiseProc.exe

Это полностью решило проблему для нашего автоматизированного ежедневного процесса сборки. Единственная проблема, которую я вижу, это то, что окно откроется на несколько секунд, что не было проблемой для нашей ежедневной сборки, но если это проблема для вас, могут быть и обходные пути ...

0
18.07.2018 10:13:32

TortoiseSVN имеет функцию восстановления переименования файлов . Это требует ручного вмешательства и фактически выдает операцию переименования файла для фиксации, но тем не менее обращается к текущему варианту использования, сохраняя историю файлов.

0
14.01.2020 11:34:32