7

我的情况是这样的:我在家里设置了一个 Subversion 服务器,我们也在我工作的公司使用 Subversion。

在工作中,我们使用锁定/编辑/解锁模型(主要是因为我们正在从 Visual SourceSafe 过渡,目前它更容易)。目前,这是通过在所有添加的文件上设置“needs-lock”属性来实现的(使用每台客户端机器上的 SVN 客户端配置文件的 auto-props 部分)。

但是,我不想将此模型用于我的家庭 SVN 服务器(我更喜欢编辑/合并/提交的工作方式),所以目前在我将工作 PC 上的任何内容提交到家庭服务器之后,我必须手动删除我添加的任何文件中的 needs-lock 属性。

有没有办法可以将 SVN 客户端设置为仅将此属性应用于提交给特定服务器的文件?或者我是不是走错了路:我应该在工作服务器上使用钩子而不是客户端来添加这个属性吗?

非常感谢任何帮助或建议。

编辑:显然,您不能在服务器上执行此操作(或者至少强烈建议您不要这样做)。

4

2 回答 2

10

我还编写了一个小的 Windows 批处理文件,以递归地needs-lock从任何已设置该属性的文件夹中删除该属性。将这些行放入一个文本文件中:

svn propdel svn:needs-lock -R -q "%1"
svn commit "%1" -m "Removed needs-lock"

将其另存为remove-needs-lock.bat,并将其位置添加到您的 PATH 环境变量中。然后你可以运行:

remove-needs-lock c:\workingcopyfoldername

而且,所有文件不再需要锁定来编辑。

于 2009-10-08T18:03:45.447 回答
3

subversion autoprops 功能在您的 SVN 客户端的配置文件中配置。还有一个单独的服务器配置文件支持特定于服务器的设置,但不幸的是你不能在那里覆盖 autoprops。

我建议你制作两个版本的 config:config.homeconfig.work。然后编写一个 shell 脚本(例如 .bat 文件),通过config复制其中一个脚本。这应该允许您在两种配置之间快速轻松地切换。

于 2009-10-08T13:26:30.563 回答