我到谷歌的每个地方我都得到了同样的答案,但这对我来说是错误的答案。最初我在我的服务器上为Windows安装了Subversion 1.5.6(我运行Windows Server 2008),并为项目创建了一个存储库。然后我在笔记本电脑上使用了Tortoise客户端版本1.6.X来更新项目。在我尝试使用post-commit钩子脚本(我在提交时更新wwwroot中的文件夹以反映网页上的更改)之前,一切都很糟糕。我收到一条消息,说“这个客户太旧了,无法使用工作副本'XXX'”。
所以我在笔记本电脑上卸载了SVN客户端,并从服务器上删除了存储库。然后我从头开始在服务器上创建了一个新的存储库并安装了TortoiseSVN版本1.5.6,如果客户端版本与服务器上的Subversion相同,那么他们应该玩得很好。在我再次下载我的笔记本电脑上的存储库并重新安装我的钩子脚本后,我得到了相同的消息......
必须不断删除我的存储库并重新安装我的客户以寻找通过反复试验合作的存储库,这是非常艰苦和具有破坏性的。如果TortoiseSVN和我的服务器Subversion都是1.5.6,我认为没有理由(并且可以在网上找不到)为什么存储库会争辩。
有没有人可以提供一些见解,为什么我会收到这条消息?甚至有人可以让我知道我需要使用哪个版本的TortoiseSVN才能让我的服务器SVN 1.5.6不要抱怨。我的钩子脚本在我的服务器上的命令行工作,所以我知道这不是它的错。提前谢谢。
答案 0 :(得分:15)
事实证明我的SVN服务器版本是1.5.6,但我在服务器上安装的TortoiseSVN客户端版本是1.6.3。当我检查我的wwwroot工作副本(或使用TortoiseSVN给我的右键选项更新它)并更新该工作副本的版本时,SVN服务器无法更新它,因为它是较低版本。
我从文件hippo下载了TortoiseSVN 1.5.6并重新检查了服务器上的工作副本,这一切都很棒!
答案 1 :(得分:3)
您声称问题的原因不是提交后的挂钩脚本,但我的预感是完全问题的根源。当您的提交后脚本运行时,它如何从Subversion服务器中获取文件,以便将它们复制到您的Web服务器?是不是检查出来?此外,你说一切正常直到你安装了post-commit钩子脚本。
之前我曾在混合模式客户端/服务器SVN安装情况下工作过,包括TortoiseSVN作为客户端,只要在同一个存储库上工作的客户端版本相同,我就不会遇到任何不兼容性。
你能否发布你提交后挂钩的内容,以便我们进一步详细说明?
答案 2 :(得分:1)
在我的情况下,我将eclipse代码从一个地方移动到另一个地方,然后问题就开始了。为了解决我从svn repo结账项目。然后在旧项目中我清理了所有svn文件。 (只需搜索.svn和删除)然后我将内容复制到刚检出的项目,我的更改变得可见,我的项目是最新的。该方法可以应用于其他恼人的错误。希望这有助于某人
答案 3 :(得分:0)
如果你从1.6降到1.5你可能需要降级。 您永远不会告诉我们您如何移动您的存储库,但您必须根据您的操作获取存储库本身的版本。
http://wiki.open.collab.net/wiki/Subversion_Client_FAQ#head-ed7f8e6b7f3265c74eaf7d49dcd4aab85bae2a12
答案 4 :(得分:0)
检查你的post-commit钩子脚本正在运行什么svn命令。检查此命令的版本是否与上一个SVN客户端的版本匹配,以触及您的存储库。
默认情况下,当使用新版本的subversion客户端时,它会将存储库升级到该版本。这意味着突然老客户就会停止工作。
答案 5 :(得分:0)
我有同样的错误。但原因是我用svn 1.5客户端检查了项目,我在eclipse中的subclipse插件是版本1.4。因此,将我的subclipse插件更新为1.6版本就可以了。所以问题是subclipse 1.4不适用于使用svn 1.5客户端检出的项目。
希望这有助于某人。