Однопользовательская проверка в SVN - PullRequest
5 голосов
/ 25 октября 2010

Я хочу сделать следующее:

Когда один пользователь редактирует файл из SVN, никакой другой пользователь не может редактировать этот файл, пока первый пользователь не подтвердит свои изменения.То есть будет какая-то блокировка записи в файлах в SVN.

Возможно ли это в SVN?Как это сделать?Можно ли установить это для одного файла или каталога (не для всего хранилища)?

Почему это будет полезно?Конфликты в двоичных и некоторых других файлах не могут быть легко разрешены.Я хотел бы, чтобы мои файлы Excel в svn были заблокированы от записи способом, описанным выше.

Я хотел бы получить руководство о том, как сделать это в VisualSVN или TortoiseSVN, которые я использую.

Ответы [ 3 ]

4 голосов
/ 25 октября 2010

Вы можете установить свойство svn:needs-lock для таких файлов, после чего файл будет извлечен "только для чтения". Если вы хотите отредактировать его, вам нужно заблокировать файл с помощью svn lock. Этот рабочий процесс предназначен именно для этого случая.

См. Здесь http://svnbook.red -bean.com / ru / 1.5 / svn.ref.properties.html для получения информации о svn:needs-lock.

2 голосов
/ 25 октября 2010

Команда "svn lock" не позволяет другим людям вносить изменения в файл. Он не может помешать вам отредактировать файл, так как svn не имеет никакого контроля над самим файлом после его извлечения. Вы можете процедурно сказать всем заблокировать бинарный файл перед редактированием, чтобы предотвратить внесение изменений, которые он не может зафиксировать.

0 голосов
/ 25 октября 2010
  1. Вы не можете сделать такую ​​блокировку записи, если у кого-то уже есть рабочая копия. Вы можете поставить обычный замок. Но его можно поместить только в файл, а не в весь каталог. Тогда другой пользователь не сможет зафиксировать свои изменения до снятия блокировки. Если вы хотите сделать это для всего каталога, то вы должны написать скрипт-ловушку. Это выполняется на стороне сервера, например, на событиях. совершить событие, .... Вы можете добавить больше логики, чтобы запретить проверки. Но это не так, как мы должны работать под SVN. Возможность параллельной разработки является одной из ключевых особенностей SVN.
  2. Writelock не эффективен, поэтому кто-то не должен работать над своей рабочей копией параллельно. В любом случае ему нужно будет слиться с новейшей версией.
...