Каков наилучший способ иметь svn: eol-style = native для текстовых файлов по умолчанию? - PullRequest
23 голосов
/ 06 ноября 2011

Я считаю, что для всех текстовых файлов рекомендуется устанавливать свойство svn:eol-style=native. Но какой самый эффективный способ сделать это?

Я разрабатываю программы в основном для Windows (используя TortoiseSVN и svn.exe командную строку) и иногда пишу переносимые библиотеки C / C ++ для Windows и Linux. Чтобы предотвратить неприятную проблему mix-CR, LF в моих исходных файлах, я думаю, что svn:eol-style=native должно быть "по умолчанию", но, к сожалению, это не так.

Из Красной книги Subversion я знаю, что настройка [auto-props] в ~/.subversion/config или %APPDATA%\Subversion\config помогает, однако, это для каждого клиента. Как насчет того, чтобы некоторые разработчики из моей команды забыли настроить эти конфигурационные файлы (подумайте о dev на нескольких виртуальных машинах)? Даже все помнят, что если возникнет какой-то новый вид расширения имени файла? Как правильно распространить это изменение на все конфигурационные файлы на всех машинах разработчиков в моей команде?

Все кажется громоздким процессом.

Ответы [ 3 ]

22 голосов
/ 06 ноября 2011

Как насчет того, чтобы некоторые разработчики из моей команды забыли настроить эти файлы конфигурации (подумайте о dev на нескольких виртуальных машинах)?

Просто исправьте ошибку.

Если вынайти файл, который был неправильно зарегистрирован, это не так сложно исправить.Сначала измените файл на правильный стиль окончания строки для вашей платформы.Любой программный редактор должен иметь возможность переключать стили с помощью некоторой встроенной команды, или вы можете использовать утилиту типа «fromdos» или «todos».После исправления установите свойство и отметьте его:

 svn propset svn:eol-style native filename
 svn commit filename

Копия моего комментария:

Еще одно предложение - использовать ловушку перед фиксацией, проверьте настройки svn: eol-style (и наличие) и исправить при необходимости

14 голосов
/ 10 июля 2013

способ Subversion 1.8

Поскольку Subversion 1.8 получил конфигурацию, заданную хранилищем (RDC), для обязательно с использованием общих настроек все клиентов для данного репозитория, свойства могут и должны быть настроены в корне (или транке) репозитория

7 голосов
/ 22 июля 2016

Это должен быть быстрый ответ, а не «погрузитесь в детали и получите это сами, вот ссылка».

Мы просто сделаем это, хорошо? Для Subversion 1.8 +:

$ cd my_checkout_dir

$ svn propset svn:auto-props '
### src
*.c = svn:eol-style=native
*.cpp = svn:eol-style=native
*.h = svn:eol-style=native
*.pch = svn:eol-style=native
*.lua = svn:eol-style=native
*.py = svn:eol-style=native
*.pl = svn:eol-style=native
*.txt = svn:eol-style=native
*.sh = svn:eol-style=native;svn:executable
### ui
*.xib = svn:eol-style=native
*.ui = svn:eol-style=native
*.qrc = svn:eol-style=native
### project
*.pro = svn:eol-style=native
*.pbxproj = svn:eol-style=native
*.json = svn:eol-style=native
*.xcworkspacedata = svn:eol-style=native
*.plist = svn:eol-style=native
' .

$ svn commit -m 'Got really tired of svn:eol-style issues'

Обратите внимание, что закрывающая одинарная кавычка и точка (т.е. текущий каталог) в конце. Настройте этот список для своих нужд, скопируйте svn propset svn:auto-props '…' . в sh-терминал unix / msys (да, с помощью Enter). После фиксации все файлы ниже my_checkout_dir наследуют соответствующие свойства при добавлении. Файлы , добавленные до , это действие не будет изменено. Как вы видите в *.sh и ниже, вы можете добавить больше свойств через ;. Если вы хотите изменить список, просто повторите все снова.

Вот значения по умолчанию, предложенные svn в моем ~/.subversion/config для справки:

### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?').  All entries which match (case-insensitively) will be
### applied to the file.  Note that auto-props functionality
### must be enabled, which is typically done by setting the
### 'enable-auto-props' option.
# *.c = svn:eol-style=native
# *.cpp = svn:eol-style=native
# *.h = svn:keywords=Author Date Id Rev URL;svn:eol-style=native
# *.dsp = svn:eol-style=CRLF
# *.dsw = svn:eol-style=CRLF
# *.sh = svn:eol-style=native;svn:executable
# *.txt = svn:eol-style=native;svn:keywords=Author Date Id Rev URL;
# *.png = svn:mime-type=image/png
# *.jpg = svn:mime-type=image/jpeg
# Makefile = svn:eol-style=native
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...