2009-10-08 6 views
6

Моя ситуация такова: у меня есть сервер Subversion, установленный у меня дома, и мы также используем Subversion в компании, где я работаю.Subversion: как удалить свойство при фиксации

На работе мы используем модель блокировки/редактирования/разблокировки (главным образом, потому что мы переходим от Visual SourceSafe, и на данный момент это проще). На данный момент это достигается установкой свойства «необходимость-блокировка» для всех добавленных файлов (с использованием раздела автоподпрограммы конфигурационного файла клиента SVN на каждом клиентском компьютере).

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

Есть ли способ настроить клиента SVN, чтобы применить это свойство только к файлам, привязанным к определенному серверу? Или я об этом не ошибаюсь: должен ли я использовать крючки на рабочем сервере, чтобы добавить это свойство вместо клиента?

Любая помощь или совет очень ценятся.

EDIT: По-видимому, вы не можете сделать это на сервере (или, по крайней мере, настоятельно рекомендуется, чтобы вы этого не сделали).

+0

YUCK! Начните борьбу на работе, чтобы это изменилось! –

+0

Я знаю ... Я знаю ... –

+0

Худшая часть, я установил ее ... –

ответ

3

Функция автопрограмм subversion настроена в файле config вашего клиента SVN. Существует также отдельный файл конфигурации servers, который поддерживает настройки для конкретного сервера, но, к сожалению, вы не можете переопределять автопрограммы там.

Я предлагаю вам сделать две версии конфигурации: config.home и config.work. Затем напишите сценарий оболочки (например, файл .bat), который копирует один из них поверх config. Это должно позволить вам быстро и легко переключаться между обеими конфигурациями.

+0

Это хороший план. –

7

Я также написал небольшой командный файл Windows, чтобы рекурсивно удалить свойство needs-lock из любых папок, в которых он уже был установлен. Поместите эти строки в текстовый файл:

svn propdel svn:needs-lock -R -q "%1" 
svn commit "%1" -m "Removed needs-lock" 

Сохранить это как remove-needs-lock.bat, и добавить его местоположение в переменную PATH среды. Затем вы можете запустить:

remove-needs-lock c:\workingcopyfoldername 

И presto, все файлы больше не требуют блокировки для редактирования.