【问题标题】:How to find out Subversion repository version?如何找出 Subversion 存储库版本?
【发布时间】:2010-09-21 21:35:54
【问题描述】:

如何确定我的存储库的当前版本以查看是否需要升级它(svnadmin upgrade)?

实际上,我正在与第 3 方一起托管 SVN,我想知道是否需要让他们升级我的存储库。

我问的是因为 1.5 服务器会保持 repo 版本为 1.4,除非我错过了什么?

【问题讨论】:

    标签: svn berkeley-db fsfs


    【解决方案1】:

    看看<REPO>/db/format。升级到1.5格式后,我的format文件显示:

    3
    layout sharded 1000
    

    以前是:

    2
    

    【讨论】:

    • Subversion 1.6 是 '4'。这是/可能/确定存储库版本的最佳方式。
    • 此信息在哪里?我在 Windows 上并使用 tortoisesvn。
    • -1。发问者表示该 repo 位于第三方 SVN 主机上。它们不会让您访问物理存储库。提问者无法直接访问该文件。顺便说一句,如果您可以访问它,这是确定版本的最佳方法。
    • 我有我的 repo url,看到了分支、标签、卡车文件夹,但没有看到任何 db 或格式文件夹?在哪里可以找到这个 Db 或 db/format 文件夹?我无权访问更高级别的 repo 目录结构?
    • @supernova,你需要转到它自己的文件系统,svn 存储它的所有文件。不通过 svn 客户端查看 svn 内容。
    【解决方案2】:

    httphttps 链接指向您的存储库,然后将其剪切并粘贴到浏览器中。 Subversion repository server 版本默认显示在页脚中。

    由 Subversion 版本 1.4.5 (r25188) 提供支持。

    人们会假设1.4 服务器不会针对1.5 存储库运行。

    详情请见Subversion 1.5 Release Notes

    感谢@Omus 的更正。

    【讨论】:

    • 我以为这是 SVN 服务器软件版本,而不是存储库版本?
    • 但它可以反过来运行,不是吗?
    • 这就是“假设”出现的地方 - 可能,但没有多大意义,不是吗?
    • "Subversion 1.5 服务器与 1.4 和更旧的存储库一起工作,除非通过 svnadmin upgrade 命令特别请求,否则它不会将此类存储库升级到 1.5。" - subversion.tigris.org/svn_1.5_releasenotes.html#repos-upgrades 所以你不应该假设:)
    • 这不适用于 VisualSVN 服务器 - 它似乎没有提供版本号。
    【解决方案3】:

    您可以查看“db”目录下的文件“format”的内容。如果显示为 3,则它已升级到 1.5(即更新后的字段系统的版本)。如果是 2,那么它是 1.4 或更高版本。

    【讨论】:

      【解决方案4】:

      Subversion 存储库版本/架构 (1) 和 Subversion 存储库 FSFS 版本 (2) 之间存在差异。

      FSFS 与 Berkeley DB 或开发中的 FSX 相比,是一种后端数据存储方法。 FSFS 是“直接使用本机 OS 文件系统的版本化文件系统实现”。

      (1):Subversion 存储库版本/模式位于 [REPO]/format 文件中。 Subversion repos_upgrade_HOWTO 文档中的当前版本是:

      SUBVERSION VERSION NUMBER           SCHEMA VERSION
      -------------------------           --------------
      Up to and including 0.27            1
      0.28 - 0.33.1                       2
      0.34 - 1.3                          3
      (no released version used this)     4
      1.4 -                               5
      

      (2):但是,存储库 FSFS 格式位于 [REPO]/db/format 文件中。当前版本位于libsvn_fs_fs FSFS Structure 文档的文件系统格式部分。他们目前是:

      Format 1, understood by Subversion 1.1+
      Format 2, understood by Subversion 1.4+
      Format 3, understood by Subversion 1.5+
      Format 4, understood by Subversion 1.6+
      Format 5, understood by Subversion 1.7-dev, never released
      Format 6, understood by Subversion 1.8
      Format 7, understood by Subversion 1.9
      Format 8, understood by Subversion 1.10+
      

      此外,从 Subversion 1.9 开始,您现在可以使用 svnadmin info 命令获取 Subversion Repository 版本/Schema,以及 Subversion Repository FSFS 版本(参见:Subversion 1.9 Release Notes - FSFS Improvements 以及如Subversion 1.9 Release Notes - svnadmin Changes and Improvements)

      【讨论】:

        【解决方案5】:

        对于VisualSVN Server,即使它使用自定义页面,您仍然可以查看页面源:)

        【讨论】:

        • 我能够确定我需要与此答案一起使用的存储库版本。好想!
        【解决方案6】:

        我还建议欺骗响应标头,因为某些服务器安装(想到VisualSVN Server)使用自定义页面,不幸的是不显示 Subversion 服务器版本。

        您可以使用Fiddler2 来欺骗服务器的请求/响应。如果您使用的是 HTTPS 连接,请务必在以下位置选中“解密 HTTPS 流量”选项: 工具->提琴手选项->HTTPS

        【讨论】:

          【解决方案7】:

          如果您使用 VisualSVN Server,您可以通过 VisualSVN Server Manager 控制台或通过 PowerShell 找到存储库的格式。阅读文章KB135: Understanding the Subversion repository types and formats 了解更多信息。

          VisualSVN 服务器管理器

          按照以下步骤找出存储库的格式:

          1. 启动 VisualSVN 服务器管理器 控制台。
          2. 右键单击存储库,然后单击属性
          3. 点击详细信息标签。

          PowerShell

          按照以下步骤通过 PowerShell 找出存储库的格式:

          1. Start the PowerShell console
          2. 执行以下命令: Get-SvnRepository MyRepo | Format-List

          【讨论】:

            【解决方案8】:

            我认为你想要的是“svnlook youngest”

            【讨论】:

            • 它还会查找文件“格式”,这在我的仓库中找不到。
            • svnlook youngest 仅显示 repo 中的最新修订号。不是 repo 数据库的版本。
            猜你喜欢
            • 1970-01-01
            • 2010-11-09
            • 2010-10-13
            • 2012-09-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-05-15
            相关资源
            最近更新 更多