22

我在谷歌上的任何地方都得到了相同的答案,但对我来说这是错误的答案。最初我在我的服务器上安装了 Windows 的 Subversion 1.5.6(我运行 Windows Server 2008),并为一个项目创建了一个存储库。然后我在笔记本电脑上使用了 Tortoise 客户端版本 1.6.X 来更新项目。在我尝试使用提交后挂钩脚本之前,一切都是笨拙的(我在提交时更新 wwwroot 中的文件夹以反映网页上的更改)。我收到一条消息,大意是“此客户端太旧,无法使用工作副本 'XXX'”。

所以我卸载了笔记本电脑上的 SVN 客户端,并从服务器上删除了存储库。然后,我从头开始在服务器上创建了一个新的存储库并安装了 TortoiseSVN 1.5.6 版,我想如果客户端版本与服务器上的 Subversion 相同,那么它们应该会很好玩。在我再次在我的笔记本电脑上下载存储库并重新安装我的钩子脚本后,我得到了相同的消息......

不得不不断地清除我的存储库并重新安装我的客户端以通过反复试验找到能够合作的存储库,这是非常辛苦和破坏性的。如果 TortoiseSVN 和我的服务器 Subversion 都是 1.5.6,我认为没有理由(并且在网上找不到)为什么存储库会争论。

有没有人可以就我为什么会收到此消息提供一些见解?也许甚至有人可以让我知道我需要使用什么版本的 TortoiseSVN 才能让我的 Server SVN 1.5.6 不抱怨。我的钩子脚本在我的服务器上的命令行中工作,所以我知道这不是错。提前致谢。

4

6 回答 6

15

原来我的SVN服务器版本是1.5.6,但是我在服务器上安装的TortoiseSVN客户端是1.6.3版本。当我检查我的 wwwroot 工作副本(或使用 TortoiseSVN 给我的右键单击选项更新它)并更新该工作副本的版本时,SVN 服务器无法更新它,因为它是一个较低版本。

我从文件 hippo 下载了 TortoiseSVN 1.5.6 并重新检查了服务器上的工作副本,一切都很好!

于 2009-08-19T20:38:39.773 回答
3

您声称问题的原因不是提交后挂钩脚本,但我的直觉是这正是您问题的根源。当你的 post-commit 脚本运行时,它如何从你的 Subversion 服务器中取出文件,以便它可以将它们复制到你的 Web 服务器?它不检查它们吗?此外,您说在安装提交后挂钩脚本之前一切正常。

我以前曾在混合模式的客户端/服务器 SVN 安装情况下工作过,包括将 TortoiseSVN 作为客户端,只要在同一存储库上工作的客户端是相同的版本,我从未遇到任何不兼容问题。

您能否发布您的提交后挂钩的内容,以便我们进一步详细说明?

于 2009-08-18T21:28:27.360 回答
1

就我而言,我将 eclipse 代码从一个地方移动到另一个地方,然后问题就开始了。为了解决问题,我从 svn repo 签出项目。然后在旧项目中我清理了所有 svn 文件。(只需搜索 .svn 并删除)然后我将内容复制到刚刚签出的项目中,我的更改变得可见并且我的项目是最新的。此方法可应用于其他烦人的错误。希望这对某人有帮助

于 2014-01-24T08:03:56.223 回答
0

如果你从 1.6 降到 1.5,你可能需要降级。你永远不会告诉我们你是如何移动你的存储库的,但你必须根据你如何获得存储库本身的版本。

http://wiki.open.collab.net/wiki/Subversion_Client_FAQ#head-ed7f8e6b7f3265c74eaf7d49dcd4aab85bae2a12

于 2009-08-18T21:36:11.603 回答
0

检查您的提交后挂钩脚本正在运行什么 svn 命令。检查此命令的版本是否与上次访问您的存储库的 SVN 客户端的版本匹配。

默认情况下,当使用新版本的 subversion 客户端时,它会将存储库升级到该版本。这意味着突然间老客户停止工作。

于 2009-08-18T21:46:01.270 回答
0

我有同样的错误。但原因是我使用 svn 1.5 客户端检查了该项目,而我在 eclipse 中的 subclipse 插件是 1.4 版。所以将我的 subclipse 插件更新到 1.6 版本就可以了。所以问题是 subclipse 1.4 不适用于使用 svn 1.5 客户端签出的项目。

希望这可以帮助某人。

于 2010-11-16T15:56:21.707 回答