TortoiseSVN兼容模式

时间:2009-03-30 11:07:28

标签: svn tortoisesvn

我们的代码是在Windows上开发的(企业要求),但它在Linux服务器上运行。因此,我们正在使用带有SVN结账的Samba共享。不幸的是,我们需要在服务器端使用一些使用SVN的脚本,但我们在服务器上的SVN是1.4,而我们在Windows客户端上的TortoiseSVN是1.5或1.6。基本上,使用TortoiseSVN对结账的任何操作都会升级结账的内部结构,因此不能再在服务器端使用,因为“客户端版本太旧了”。

你知道如何解决这个问题吗?我所知道的唯一方法就是在客户端根本不使用SVN,但这样做会产生反作用。在服务器上升级SVN也是不可能的。还有其他可能性吗?

3 个答案:

答案 0 :(得分:5)

为什么不使用旧的1.4 TortoiseSVN?

另一种选择是为Samba共享提供单独的工作副本,以及运行您提到的SVN脚本。这样,您的共享工作副本可以使用v1.6。

答案 1 :(得分:5)

不要分享工作副本!

特别是在不同操作系统之间。你 迟早会遇到麻烦。一个(最明显的一个)问题是文本文件的行结尾。如果将svn:eol-style属性指定为“native”,则在Linux上运行的svn客户端与在Windows上运行的svn客户端不同。

还有很多不同之处会让你在这种方法中遇到麻烦,但那些需要知道svn内部的知识才能理解。

再次:不要分享工作副本!

答案 2 :(得分:0)

只要服务器可以看到svn存储库,我就会找到一个小批处理文件,它使用来自putty的 plink 之类的东西,并在服务器上运行一个脚本来更新它的已检出文件夹。

并且还在每台开发机器上保留一份单独的工作副本(我认为你仍然可以使用)

这样,我们使用哪个客户端版本并不重要,因为所有客户端签出的存储库都是独立的。为了简化一些事情,还要检查plink和批处理文件以在服务器上运行更新脚本,然后在用户知道id /密码的框上创建受限制的帐户,然后您可以从客户端计算机上运行它easilly 。 我们有一个命令行如下

tools \ PLINK.EXE -pw密码user @ server / fullPathToSNVUpdateScript