如何锁定文件并使其在svn中只读

时间:2013-07-19 22:11:37

标签: svn tortoisesvn visualsvn-server

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

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

任何人都可以看看这个并告诉我我做错了什么?

2 个答案:

答案 0 :(得分:1)

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

要实施锁定 - 修改 - 解锁模型,您需要执行以下常规步骤:

  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. 您可以设置pre-and--post锁定和解锁挂钩以进行通知 用户(或管理员)文件已被锁定或解锁,何时和 由谁。

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

答案 1 :(得分:0)

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

  

"更改的文件必须与模式匹配"条件

     

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

     

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

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

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

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

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

或这些的任何组合。

查看更多示例here