【问题标题】:This client is too old to work with working copy此客户端太旧,无法使用工作副本
【发布时间】:2014-05-23 06:30:50
【问题描述】:

我在谷歌上的每一个地方都得到了相同的答案,但对我来说这是错误的答案。最初我在我的服务器上安装了 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 不抱怨。我的钩子脚本在我的服务器上的命令行中工作,所以我知道这不是错。提前致谢。

【问题讨论】:

  • 您从 TortoiseSVN 或其他地方收到错误消息?钩子脚本在做什么?你是通过http访问svn服务器吗?
  • 如果您遇到客户端问题,为什么要重新创建存储库而不只是重新创建工作副本?还是你也更新了服务器?
  • 我在 TortoiseSVN 和命令行客户端中遇到错误。这是我的钩子脚本的样子: "[PATH TO svn.exe]" update "[PATH TO SERVER WORKING COPY]" --quiet --non-interactive --username [USERNAME] --password [PASSWORD] -- config-dir "[PATH TO REPOSITORY CONFIGURATION FILE]" 我没有通过 http 访问

标签: svn tortoisesvn windows-server-2008 post-commit


【解决方案1】:

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

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

【讨论】:

  • 这不正是我要表达的意思吗? (见我最后的评论)
  • 重新检查了工作副本 - 工作但悲伤:(
【解决方案2】:

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

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

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

【讨论】:

  • 我开始认为你对钩子脚本的看法是正确的。这是我的钩子脚本: "[PATH TO svn.exe]" update "[PATH TO SERVER WORKING COPY]" --quiet --non-interactive --username [USERNAME] --password [PASSWORD] --config-dir “[PATH TO REPOSITORY CONFIGURATION FILE]”它是我的存储库的 hooks 目录中的一个 .cmd 文件
  • 跟我想的完全一样。现在,[PATH TO svn.exe] 中指定的 svn.exe 版本是什么?我打赌你那里有冲突。
  • 附带说明,这里是我从哪里获得此解决方案的链接。似乎为他工作,但不适合我:codersrevolution.com/index.cfm/2008/9/15/…
  • 我不知道如何直接检查该文件的版本,但同一目录中的自述文件指出“这是 Win32 的 Subversion,版本 1.5.6”,这是可以预料的,因为是我安装的版本
  • 您是否曾使用任何其他版本的 SVN 更新 [PATH TO SERVER WORKING COPY] 路径?
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

    • 没有必要降级存储库,因为我完全删除它并在切换版本时重新制作它。
    【解决方案5】:

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

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

    【讨论】:

    • 它将升级工作副本,而不是存储库(除非您也更新服务器本身)。通常,如果您想要老客户,您只需进行干净的结帐即可。
    【解决方案6】:

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

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      相关资源
      最近更新 更多