Назад | Перейти на главную страницу

Subversion - Могу ли я установить автоматические реквизиты на стороне сервера?

Я поддерживаю сервер SVN, и пользователю необходимо зафиксировать множество файлов Adobe Illustrator (т.е. *.ai). Я могу использовать auto-props в их конфигурации, чтобы установить его как двоичный файл, чтобы его не было в списке рассылки. Однако я бы хотел сделать это как можно проще. Есть ли что-то, что я могу установить в конфигурации сервера SVN, чтобы он (то есть сервер) автоматически установил правильный svn:mime-type?

Apache Subversion 1.8 представил Конфигурация, продиктованная репозиторием функция, которая требует Клиент SVN 1.8. (Другими словами, сервер 1.8 не требуется).

В Subversion 1.8 вы можете настраивать шаблоны автозаполнения в репозитории с помощью новой Subversion. svn:auto-props унаследованное имущество.

Например, установка svn:auto-props ценность для *.bmp = svn:mime-type=image/bmp свойство в корне вашего репозитория (или путь репозитория, который представляет корень проекта) приведет к каждый вновь добавленный растрового изображения, чтобы тип MIME применялся автоматически.

Вы можете хранить многострочные значения в свойствах Subversion, поэтому вы можете добавить следующий (вполне стандартный) шаблон svn: needs-lock и MIME в svn:auto-props:

*.bmp = svn:mime-type=image/bmp;svn:needs-lock=*
*.gif = svn:mime-type=image/gif;svn:needs-lock=*
*.ico = svn:mime-type=image/x-icon;svn:needs-lock=*
*.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=*
*.jpg = svn:mime-type=image/jpeg;svn:needs-lock=*
*.png = svn:mime-type=image/png;svn:needs-lock=*
*.tif = svn:mime-type=image/tiff;svn:needs-lock=*
*.tiff = svn:mime-type=image/tiff;svn:needs-lock=*    
*.doc = svn:mime-type=application/msword;svn:needs-lock=*
*.jar = svn:mime-type=application/octet-stream;svn:needs-lock=*
*.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=*
*.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=*
*.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=*
*.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=*
*.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=*
*.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=*
*.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=*
*.pdf = svn:mime-type=application/pdf;svn:needs-lock=*
*.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=*
*.ser = svn:mime-type=application/octet-stream;svn:needs-lock=*
*.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=*
*.vsd = svn:mime-type=application/x-visio;svn:needs-lock=*
*.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=*
*.zip = svn:mime-type=application/zip;svn:needs-lock=*

Это невозможно. Есть давний запрос функции для трансляции конфигов клиенту. В настоящее время он не выйдет до версии 2.0 или новее.

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

Ни то, ни другое не очень хорошо, и я считаю, что последнее даже не рекомендуется.

Хотя на этот вопрос нет однозначного ответа, вы можете использовать svn_apply_autoprops.py который я написал, чтобы применить ваши стандартные автоматические свойства к рабочей копии, чтобы привести все файлы в соответствие.