我们的代码是在Windows上开发的(公司要求),但它在Linux服务器上运行。因此,我们使用带有SVN签出的Samba共享。不幸的是,我们需要在服务器端使用一些使用SVN的脚本,但是我们在服务器端的SVN是1.4,而在Windows客户端上的TortoiseSVN是1.5或1.6。因此,从本质上讲,使用TortoiseSVN的任何结帐操作都会升级结帐的内部结构,因此不能再在服务器端使用它,因为“客户端版本太旧了”。
你知道解决这个问题的方法吗?据我所知,唯一的办法就是根本不在客户端使用SVN,但这是一种适得其反的做法。在服务器上升级SVN也是没有问题的。还有其他的可能性吗?
发布于 2009-03-30 11:10:30
那你为什么不使用老的1.4版TortoiseSVN呢?
另一种选择是为Samba共享和运行您提到的那些SVN脚本提供一个单独的工作副本。这样,您的共享工作副本就可以使用v1.6。
发布于 2009-03-30 12:08:57
不要共享工作副本!
尤其是在不同的操作系统之间。You 迟早会因此而陷入麻烦。一个(最明显的)问题是文本文件的行尾问题。如果将svn:eol-style属性指定为"native",那么对于在Linux上运行的svn客户端和在Windows上运行的svn客户端是不同的。
使用这种方法会遇到更多的差异,但这些差异需要了解svn内部的知识。
再说一次:不要共享工作副本!
发布于 2009-03-30 11:28:43
只要服务器可以看到svn存储库,我就会去找一个小的批处理文件,它使用putty中的、plink、之类的东西,然后在服务器上运行一个脚本来更新它的已签出文件夹。
并在每台开发机器上保留一个单独的工作副本(我假设你已经有了)
这样,我们使用哪个客户端版本并不重要,因为所有客户端签出的存储库都是独立的。为了简单起见,还要检查plink和一个批处理文件,以便在服务器上运行更新脚本,然后在机器上创建一个受限制的帐户,用户知道该帐户的id/密码,然后就可以很容易地从客户机上运行它。我们有一个如下命令行
服务器密码tools\PLINK.EXE @ -pw /fullPathToSNVUpdateScript
https://stackoverflow.com/questions/696776
复制相似问题