2009-10-08 46 views
6

我的情况是这样的:我有一个在我家设置的Subversion服务器,我们也在我工作的公司使用Subversion。颠覆:如何删除提交的财产

在工作中,我们使用锁定/编辑/解锁模型(主要是因为我们正在从Visual SourceSafe过渡到现在更容易)。目前,这是通过在所有添加的文件(使用每台客户端机器上的SVN客户端配置文件的auto-props部分)上设置'needs-lock'属性来实现的。我不想用我的家用SVN服务器的这种模式(我更喜欢编辑/合并/提交的工作方式),所以当我从我的工作PC提交任何东西到我的家庭服务器后,我必须从我添加的任何文件中手动删除需要锁定属性。

有没有一种方法可以将SVN客户端设置为仅将此属性应用于提交给特定服务器的文件?还是我错误地说:我应该在工作服务器上使用钩子来添加这个属性,而不是客户端?

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

编辑:显然,你不能在服务器上做到这一点(或至少强烈建议你不要这样做)。

+0

YUCK!在工作中开始战斗,让这个变化! – 2009-10-08 10:13:29

+0

我知道...我知道... – 2009-10-08 10:15:18

+0

最糟糕的部分是,我设置了它... – 2009-10-08 10:17:53

回答

3

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

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

+0

这是一个很好的计划。 – 2009-10-08 18:00:04

7

我也写了一个小小的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 

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