0

我正在使用 VisualSVN Server 将我的文件存储在存储库中。然后我使用 TortoiseSVN 客户端检查它们。我想确保当一个客户端锁定并开始处理文件时,其他客户端也不应该能够对同一文件进行更改。当他们签出存储库时,他们应该将文件视为“只读”。

为了做到这一点,我去了 TortoiseSVN 的配置文件并添加了属性"*.* = svn:needs-lock=true",并且我还取消了该行的注释enable-auto-props = yes,无论是在服务器端还是在客户端都可以确定。但是在锁定之后,其他客户端仍然可以修改文件,尽管他们不能提交它,因为锁定已经被锁定了。

谁能看看这个并告诉我我做错了什么?

4

2 回答 2

1

Auto-props 指示 Subversion 自动设置新添加或导入文件的属性。它不会触及存储库中已存在的文件。见http://svnbook.red-bean.com/en/1.8/svn.advanced.confarea.html#svn.advanced.confarea.opts

要实现 lock-modify-unlock 模型,您需要执行以下一般步骤:

  1. 第一步是设置svn:needs-lock文件的属性。应用于svn:needs-lock文件后,文件将获得只读属性。在编辑文件之前,它应该被显式锁定(这个事实反映在存储库中)。提交后锁默认释放。

  2. 然后你可以实施某种锁定策略(参见 http://svnbook.red-bean.com/en/1.8/svn.advanced.locking.html#svn.advanced.locking.break-steal)来限制一些用户无法窃取锁,

  3. 您可以设置前后锁定和解锁挂钩,以通知用户(或管理员)文件已被锁定或解锁,何时以及由谁。

我强烈建议您仔细阅读以下 SVNBook 部分:

于 2013-07-22T12:47:07.843 回答
0

使用名为Commit Policy的 JIRA 插件,您可以拒绝与正则表达式或 glob 表达式不匹配的修改文件

“更改的文件必须匹配模式”条件

验证提交的文件,包括修改、添加、删除或以其他方式触及的文件。

它将正则表达式或 glob 模式与提交中包含的每个文件匹配。仅当模式匹配所有文件路径时,才满足条件。

使用这种条件类型,您可以锁定单个或多个文件(glob):

!({*/README.txt,README.txt})

...单个或多个目录(glob):

!(src/main/java/com/company/internal/)

或这些的任何组合。

在此处查看更多示例。

于 2015-12-30T18:48:38.230 回答