Сведения о вопросе

DED

11:20, 3rd August, 2020

Теги

svn   version-control   eol    

Как я могу преобразовать все окончания строк в CRLF, LF или CR во время операций SVN

Просмотров: 617   Ответов: 4

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

Что ты делаешь?



  Сведения об ответе

padenie

16:49, 10th August, 2020

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

Похоже, вы хотите, чтобы свойство 'svn:eol-style' было установлено в 'native' - это автоматически преобразует новые строки в то, что используется на вашей платформе (используйте 'CRLF', 'CR' или 'LF', чтобы получить их независимо от того, что хочет OS).

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


  Сведения об ответе

ЯЯ__4

15:08, 21st August, 2020

Первое-это, чтобы очистить все вверх. Вы на Windows или Unix/Linux/Mac?

Если вы находитесь на Unix/Linux/Mac, вы можете попробовать что-то вроде этого:

$ find . -type f -name "*.java" -exec dos2unix {}\;

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

Будьте осторожны, используя его, потому что вы не хотите, чтобы munge двоичные файлы.

После того, как вы все очистили, вы должны поместить свойство svn:eol-style в свои файлы. Установив его в native , вы получите файл с правильным окончанием строки для вашего компьютера,но сохраните их в формате Unix line ending. Остальные три варианта - это "LF" для Unix, "CRLF" для Windows и "CR" для предустановленных Mac OS X Macs. Большинство людей считают, что "native" работает лучше всего. Единственная проблема с Native заключается в том, что он не будет проверять файл со смешанными окончаниями строк, в то время как "LF" и "CRLF" будут проверять.

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


  Сведения об ответе

prince

11:21, 4th August, 2020

Добавьте Хук предварительной фиксации , который анализирует содержимое файла и выполняет для вас мунгинг CRLF/LF/CR/etc, прежде чем он будет записан в SVN.


  Сведения об ответе

ЯЯ__4

09:38, 24th August, 2020

Вы можете рассмотреть возможность использования команды, такой как Linux в dos2unix для преобразования. Будучи командой Linux, ее легко использовать в пакетном режиме со скриптами и т. д. Я не знаю, есть ли эквивалент для других операционных систем.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться