在SVN中,有没有办法禁止对作为外部本地存在的文件所做的更改提交?
我想强制我的用户签出实际文件,进行更改并在那里提交。然后他们可以测试该文件的每个已知订阅项目,以确保它们没有破坏。
答案 0 :(得分:0)
不是真的。我有Precommit Hook可能有效。
不幸的是,当您编辑外部目录时,svnlook
无法区分它是否是外部目录。我相信早期版本的SVN并没有让你直接编辑外部因为我记得这似乎是默认行为(我在这里谈论的是1.2和1.3)。
但是,您可以使用此挂钩来阻止用户在看起来像外部的目录下编辑文件。
假设您有http://svn.vegicorp.com/repo/trunk/common
和http://svn.vegicorp.com/repo/trunk/foomaster
中使用的项目http://svn.vegicorp.com/repo/trunk/barmaster
。外部在这些项目下的common
目录下:
[file You cannot edit an external directory. Please checkout http://svn.vegicorp.com/repo/trunk/common to edit that file]
file = /trunk/*/common
access = read-only
users = @ALL
[file You cannot edit an external directory. Please checkout http://svn.vegicorp.com/repo/trunk/common to edit that file]
file = /branches/*/*/common
access = read-only
users = @ALL
[file Good for you! You checked out http://svn.vegicorp.com/repo/trunk/common ]
file = /trunk/common/**
access = read-write
users = @ALL
[file Good for you! You checked out http://svn.vegicorp.com/repo/trunk/common ]
file = /branches/*/common/**
access = read-write
users = @ALL