Я могу сделать Подверсию + TortoiseSVN нечувствительный к регистру для Windows?

Я думаю, что ни один из приведенных выше ответов не объясняет вам реальную разницу между вложенным классом и статическим вложенным классом при разработке приложения:

OverView

Вложенный класс может быть нестатическим или статическим, и в каждом случае это класс, определенный в другом классе. Вложенный класс должен существовать только для того, чтобы служить является классом-оболочкой, если вложенный класс полезен другими классами (а не только оболочкой), должен быть объявлен как класс верхнего уровня.

Разница

Нестатический Вложенный класс: неявно связан с вмещающим экземпляром содержащего класса, это означает, что можно вызвать методы и получить доступ к окружающим экземплярам. Одно распространенное использование нестатического вложенного класса - это определение класса адаптера.

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

Заключение

Таким образом, основное различие между двумя с точки зрения дизайна: нестатические вложенные класс может получить доступ к экземпляру класса контейнера, а static не может .

25
задан Simon 18 October 2010 в 12:45
поделиться

7 ответов

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

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

20
ответ дан bahrep 28 November 2019 в 21:42
поделиться

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

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

2
ответ дан 28 November 2019 в 21:42
поделиться

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

2
ответ дан 28 November 2019 в 21:42
поделиться

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

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

1
ответ дан SarekOfVulcan 28 November 2019 в 21:42
поделиться

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

  • Для коммиты сделаны вручную , теперь 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
ответ дан Hugo González Castro 28 November 2019 в 21:42
поделиться

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

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

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

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

4
ответ дан 28 November 2019 в 21:42
поделиться

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

0
ответ дан 28 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: