【问题标题】:Can't access remote svn 1.4.6 repository using svn 1.8.x client无法使用 svn 1.8.x 客户端访问远程 svn 1.4.6 存储库
【发布时间】:2014-08-19 23:39:14
【问题描述】:

我在某处读到 svn client 1.7.x/1.8.x 特别适用于任何版本的 svn 存储库,对我来说是 1.4.6(我的办公室使用它)。因此,在 2012 年,我将所有 svn 客户端(slik、ankSVN、TortoiseSVN)升级到 1.7.2 和我所有项目的工作副本。但是,它并没有很好地工作,并且 95% 的时间提交都失败了。由于项目进度,我没有过多寻找解决方案,并全部恢复到 1.6.17。

现在,开发工具(Eclipse、Visual Studio 等)正在更新,新工具不再支持 svn client 1.6.x。我必须使用较新的 svn 客户端。因此,昨天,由于之前的故障,我将所有 svn 客户端升级到 1.8.9(最新)而不是 1.7.x,并更新了我当前项目的工作副本。但是,1.8.9 根本不起作用。我测试了我所有的 svn 客户端(我在 TortoiseSVN->Settings->Network->Proxy 选项中设置了我的存储库服务器 URL)。所有客户端都显示以下错误-

Commit failed (details follow):
Unable to connect to a repository at URL
 'http://path-to-repository'
OPTIONS request on
 'path-to-repository/...' failed: 504

我不能要求管理员升级存储库(更喜欢旧的 TortoiseSVN 访问,但我想从 IDE 访问 svn),因为许多其他人像我一样从远程位置访问它。怎么解决?

更新:在使用 svn 客户端 1.8.9 失败后,我安装了 TortoiseSVN 1.7.3,它像 1.6.17 一样工作(不是我两年前第一次尝试的时候),没有任何额外的变化。

【问题讨论】:

    标签: svn tortoisesvn


    【解决方案1】:

    不应该有 Subversion 1.7 或 Subversion 1.8 不能与 Subversion 1.4 服务器一起使用的原因。自 Subversion 1.6 以来发生的变化是 工作副本 的格式。也就是说,Subversion 如何在客户端进行结帐。你有两种选择来处理这个问题:

    • 运行svn upgrade 命令将您的工作目录升级到新格式。完成此操作后,您将无法使用旧版客户端。
    • 执行新的干净结帐。这是最好的方法。

    现在是时候发泄一下我的脾脏了……

    脾虚

    Subversion 1.4.x 版不再受到官方支持。 Subversion 1.5 中引入了两个重大变化,这将使任何站点都想要升级:

    • 合并跟踪。在 Subversion 1.5 服务器中,支持合并跟踪。仅此一项就值得升级。
    • 新的svn:externals 格式:svn:external 属性的格式具有比旧格式灵活得多的新格式。

    告诉您的管理员使用该程序。我可以理解不想从 1.7 升级到 1.8。我什至可以理解不想从 1.6 升级到 1.7 或 1.8。但是,世界上绝对没有理由坚持使用这样一个古老的 Subversion 服务器副本。

    1.4 版是八年前发布的。当 1.4 版本发布时,Apple 仍被称为 Apple Computer,最近又恢复了盈利。看起来苹果公司不会很快倒闭,有些人被他们的新 MacBook Pro 所吸引。时尚的机器。太糟糕了,他们使用的是旧的 PowerPC 处理器,而不是英特尔新的更快的 Duo Core 芯片。不幸的是,对于 Apple 来说,没有办法实现如此重大的架构变化。是的,Apple 将继续成为科技行业的小众玩家。

    与此同时,微软取得了长足的进步。人们正在等待下一个 Windows 版本 Longhorn 的问世。它将包含文件系统和其他功能的重大变化,这些变化将巩固微软作为科技行业领导者的声誉。难怪大家都用 Internet Explorer 6.0!

    而且,微软似乎也在赢得智能手机市场。 Windows Mobile 是首选操作系统,甚至 Palm 也决定发布使用该操作系统的手机。当然,所有酷孩子都在使用黑莓。

    这就是 Subversion 1.4 时代的世界。

    在服务器上从一个版本的 Subversion 升级到另一个版本相当容易(除非您坚持滚动自己的。即使是必须转储和加载的大型存储库也可能被转换在几个小时内完成。如果您不进行转储和加载,则可以使用svnadmin upgrade。升级 repo 不会超过一个小时。

    所以,将旧的 Subversion 1.4 服务器升级到 1.8。您将获得最新功能、改进的文件移动和更快的速度。另外,1.8 版应该至少还能再使用两年,然后您必须再次升级。

    【讨论】:

    • 不是 1.4 还在使用 Scattered .svn Files All Around Your Working Copy 格式吗?从那以后升级的那天我很高兴...
    • @David W. 如果我输入错误密码,它 (1.8) 会再次提示我。但是,无法访问存储库。同时,我可以从 VM Windows 上运行的 svn client 1.6 访问存储库。
    • @ÁlvaroG.Vicario 执行此操作的是 客户端,而不是服务器,它直到 1.7 才引入。 1.7 之前的那些.svn 文件的优点之一是每个目录都是一个独立的工作目录。我可以trim 缩小我的工作目录的大小。此外,1.7 之前的 .svn 在出现问题时更易于理解和分析。
    • @MARK002-MAB 你遇到什么样的错误?您是要更新现有的工作目录,还是新建一个?
    • @DavidW。我升级了几个项目,更新/提交不起作用。我得到的错误与我在问题中添加的错误相同。 Show Log/Browse repo/New clean checkout 不工作。但是,相同项目副本上的相同操作正在使用 VM Windows 上的 1.6.x 客户端。我在两个 Windows 上的 %APPDATA%\Romaing\Subversion 中区分了 1.6.x 和 1.8.9 配置文件,它们是相同的。当我尝试从桌面浏览 repo 时,它会显示 Windows 凭据的安全对话框,尽管它们是在 TortoiseSVN 的网络设置中设置的。
    【解决方案2】:

    引用: 我在 TortoiseSVN->Settings->Network->Proxy 选项中设置了我的存储库服务器 URL

    然后是:OPTIONS request on 'path-to-repository/...' failed: 504

    错误 504 为 gateway timeout

    这应该是你的线索:你的存储库的 url 不是代理,你不能输入它作为代理 url!

    如果您没有特殊的代理设置,则不要在该设置字段中输入任何内容,而是将其留空。

    如果您确实需要在该代理字段中输入内容,请向您的管理员询问代理服务器的地址,然后输入该地址。

    【讨论】:

    • 我什至无法使用 CLI svn 客户端 (slik) 访问。我试过你说的;但是,同样的错误(TortoiseSVN 花了大约 6 分钟来显示错误)。我卸载了 slik 的 1.8.9 版本并安装了 1.6.17 并尝试了相同的命令。有用;只是没有 1.8.9。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2019-02-06
    • 2014-05-13
    • 2015-04-06
    • 2019-12-29
    相关资源
    最近更新 更多