Subversion (svn + tortoiseSvn) фиксирует не заблокированный файл - PullRequest
4 голосов
/ 18 декабря 2009

Я испытал странную функциональность Subversion.

Мы используем последние версии 1.6 Svn server visual svn и tortoise svn 1.6.6

Мы определили свойство svn: needs-lock для файла, затем, если вы копируете файл из другого места, он показывает локальные изменения, если вы пытаетесь зафиксировать SVN, он позволяет вам фиксировать, даже если вы не получили LOCK.

Это большая проблема для нас, пожалуйста, дайте нам знать, как заставить SVN не разрешать коммиты без получения блокировки.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 18 декабря 2009

Механизм блокировки в Subversion не даст вам способа предотвратить коммиты без блокировки.

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

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

1 голос
/ 18 декабря 2009

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

Если вам нужно защитить пользователей от преднамеренного неправильного использования функции блокировки, то, возможно, Subversion не является для вас подходящим инструментом. Другие продукты, такие как Perforce или ClearCase, гораздо более строгие с протоколами блокировки.

0 голосов
/ 18 декабря 2009

Установка свойства svn: needs-lock не делает ничего особенного: она сообщает Subversion, что нужно установить флаг «только для чтения» для этих файлов при проверке или обновлении.

Так что в идеале все файлы с установленным свойством svn: needs-lock должны иметь флаг readonly. Когда вы получаете svn-блокировку, Subversion убирает флаг readonly, чтобы вы могли редактировать файл.

Итак, что происходит в вашей ситуации: вы заменяете файл, для которого установлен флаг только для чтения, другим файлом, для которого этот флаг не установлен. И Windows не использует флаг readonly замененного файла.

0 голосов
/ 18 декабря 2009

Свойство svn:needs-lock не svn-needs-lock. Это может быть вашей проблемой.

Также subversion не позволяет вам навязывать кому-либо блокировки. Блокировки могут быть переопределены с помощью опции `--force``.

...