Svn импорт с авто-реквизитом и предварительной фиксацией - PullRequest
3 голосов
/ 24 марта 2010

В svn репо моей компании много документов по MS Word. Мы внедрили политику, согласно которой все файлы .doc должны иметь свойство svn: needs-lock, установленное для предотвращения параллельного доступа к файлам, которые трудно объединить (мы также сделали это для xls, ppt, pdf и т. Д.).

Мы реализовали эту политику, распространив конфигурацию svn с автоматическими настройками, установленными соответствующим образом для всех соответствующих типов документов. Мы также настроили ловушку предварительной фиксации, которая проверяет, что все добавленные файлы этих типов имеют установленное свойство needs-lock (то есть, если они забывают / слишком ленивы, чтобы обновить свой конфигурационный файл svn, они не смогут добавить любые документы в репо).

Однако проблема, с которой я столкнулся, заключается в том, что ловушка предварительной фиксации завершается неудачно, когда пользователи пытаются импортировать файлы в репозиторий, например Некоторые пользователи любят добавлять файлы непосредственно через Repo Browser TortoiseSVN, который фактически является импортом SVN.

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

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

1 Ответ

1 голос
/ 26 марта 2010

Решил ... и моя вина тоже.

Автозапросы были определены неправильно. У меня были записи, такие как:

*.doc = svn:needs-lock

когда я должен был:

*.doc = svn:needs-lock=*

т.е. фактически установите значение для свойства needs-lock, как и для любого другого свойства, такого как svn: mime-type.

Раздражающая проблема заключается в том, что сломанный конфиг прекрасно работает для операций добавления. Кажется, не имеет значения, что "= *" отсутствует в конце определения autoprops. Значение * свойства, по-видимому, в любом случае устанавливается.

Однако, когда вы выполняете импорт, Subversion не так хороша и не исправляет автоматически установленные параметры автоматического пропуска.

Я принимаю, что это была моя ошибка, но поведение должно быть одинаковым как для операций добавления, так и для импорта.

...