是否可以更改存储在Subversion中的文件,以便永远无法修改?我们有一个文件需要存储在系统中,但没有用户应该能够更新它。
答案 0 :(得分:2)
您可以创建一个预提交挂钩,拒绝任何包含该文件的提交。
答案 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-write
,read-only
,no-delete
或add-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
。由您来决定正确的答案选择。