更改Subversion文件,以便永远不会修改它

时间:2011-12-01 15:28:20

标签: svn

是否可以更改存储在Subversion中的文件,以便永远无法修改?我们有一个文件需要存储在系统中,但没有用户应该能够更新它。

4 个答案:

答案 0 :(得分:2)

您可以创建一个预提交挂钩,拒绝任何包含该文件的提交。

请参阅Implementing Repository Hooks

答案 1 :(得分:2)

我看到你已经接受了答案,但我有Perl pre-commit hook可以做你想要的。您只需在控制文件中发送一个条目:

[file You are not allowed to modify this file]
file = /the/file/you/cannot/modify.txt
access = read-only
users = @ALL

顺便说一句,你应该创建一个可以修改这些文件的管理员组,这样你就不必修改它,如果你必须修改它:

; Creates a group of users who are allowed to modify read-only files
[group admins]
users = firedragon, bob, ted, carol, alice

[file Only Admins are allowed to modify this file]
file = /the/file/you/cannot/modify.txt
access = read-only
users = @ALL

; Order is important. The last entry that matches
; the file is the one implemented
[file Only Admins are allowed to modify this file]
file = /the/file/you/cannot/modify.txt
access = read-write
users = @admins

您可以使用Ant样式的globs或Perl正则表达式指定一组文件,访问控制可以是read-writeread-onlyno-deleteadd-only这对标签很有用。用户可以创建标记,但不能修改它。

[file You can create a tag, but not modify it]
file = /tags/**
access = read-only
users = @ALL

[file You can create a tag, but not modify it]
file = /tags/*/
access = add-only
users = @ALL

第一个删除了在整个标记目录树中的任何位置写入的所有功能。第二个允许用户只在/tags/目录下直接添加标记。

顺便说一下,您应该创建一个可以修改这些文件的管理员组,这样您就不必更改钩子了:

答案 2 :(得分:1)

您可以使用svn lock,但其他用户可以强行取消锁定。最好的方法是使用一个拒绝修改文件的钩子。

这些文章可以帮到你:

答案 3 :(得分:0)

我认为答案是肯定而不是两者兼而有之。是的,您可以lock该文件而不是unlock其他用户。不,在某种意义上,如果您unlock该文件,则另一个用户可以modify。由您来决定正确的答案选择。