代码之家  ›  专栏  ›  技术社区  ›  Nic Wise

如何使用Subversion获取主复制?

  •  13
  • Nic Wise  · 技术社区  · 17 年前

    似乎是个简单的问题:

    • 我在防火墙内有一个SVN报告。
    • 我在防火墙外有一个SVN报告。
    • 我在防火墙内外都有用户。(没有VPN不是一个选项:(那太容易了)
    • 防火墙内的机器可以与外部SVN服务器通信。但不是相反。
    • 外部SVN是一个临时的东西-主要回购将永远在内部。

    我想以某种方式(从内部,最有可能)接受其中一个中的所有更改,并将它们应用到另一个中。反之亦然。听起来很简单,我假设类似的Git可以做到这一点,但我们使用的是SVN。

    有人这么做吗?我不介意这是一个手动的过程——只有几个外部人员,他们不需要更新到最新的时刻,一天两到三次就可以了。

    我相信apache.org可以做到这一点,但我找不到他们如何做到这一点的文档。有一些产品可以做到这一点(好吧,一个),但我想知道是否有人有一个好的,干净的方法来做到没有他们。Svnsync只在一个方向上执行此操作(主从)

    很高兴在Windows、Linux或Mac上运行它,因为我们拥有所有这些软件。不过,Windows和Mac还是首选。

    救命!:)

    [更新]在12个月的混乱之后(最终不需要这样做),我认为正确的答案是正确的。使用git-从svn-a中提取一个repo,然后推到一个新的git repo,然后从那里推到svn-b。应该有效:)

    8 回复  |  直到 17 年前
        1
  •  6
  •   community wiki jmanning2k    17 年前

    我建议 SVK git-svn .

    这两种方法都允许您创建SVN存储库的外部镜像,并允许外部开发人员直接提交到外部镜像。然后,您可以将更改从这个外部镜像拉到内部主回购。

    GitSvn(我认为)需要外部开发人员使用Git。我更喜欢,但我不愿意把这个推到别人身上。

    然而,SVK允许外部开发人员继续使用SVN。由于内部回购只能在内部访问,因此内部帐户或用户必须处理定期同步(cron作业可能会工作)。

    以下是SVK wiki上的扩展howto: UsingSVKAsARepositoryMirroringSystem

        2
  •  3
  •   community wiki 2 revs, 2 users 75% anonymous    17 年前

    简单性通常是最好的方法,而且听起来您已经有了一个简单的解决方案:在防火墙之外使用SVN存储库。

    你已经说过防火墙内的机器可以到达它,很明显,防火墙外的机器可以到达它……这就是所有人,那么对于防火墙内的第二个SVN存储库,您有什么理由?如果它只是一个备份,那么就备份外面的那个。

    如果我不符合你的要求,请告诉我。

    另一个想法…如果您同时拥有内部和外部SVN实例…是什么阻止他们为了不同的目的同时给出相同的变更列表ID?如果你在寻求一个非集中化的解决方案,你应该着眼于 GIT 而不是SVN。

        3
  •  3
  •   bahrep Ahamed    11 年前

    VisualVN Server企业版的一个功能是 多站点存储库复制 这正是你想要的。

    该功能基于VisualVN分布式文件系统(VDFS)技术,该技术旨在跨地理分布的站点实现透明的Subversion存储库复制。VDF的一些显著特点:

    • 所有分布式vdfs子版本存储库都是可写的,
    • vdfs支持透明的双向数据复制,
    • vdfs支持复制授权规则和高级身份验证机制,如集成Windows身份验证(NTLM/Negotiate)和安全的SSL/TLS加密。
    • 所有vdfs存储库都包含相同的数据集,
    • 使用vdfs通过广域网进行的存储库复制比基于直写代理的复制快10倍,
    • VDFS配置是通过图形界面完成的,没有任何复杂的步骤。

    值得注意的是,VDF遵循经典 主从 具有显著优势的复制模型 大师 复制模型,因为它更适合用fs fs fs-type后端复制子版本存储库。VDFS技术比SVN的主复制解决方案更可靠。

    VDFS configuration interface for multisite Apache SVN repos

        4
  •  1
  •   Mike F    17 年前

    嗯……我想,让两个回购协议保持同步是非常重要的。它基本上包括将SVN转换为Mercurial或Git。

        5
  •  0
  •   Jeyanthan I    14 年前

    最无缝和可扩展的解决方案是使用SVNSYNC进行主/从复制,如Subversion Book: http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd.extra.writethruproxy

        6
  •  -1
  •   Franci Penov    17 年前

    您可以尝试在文件级别复制repo。我在用foldershare( http://www.foldershare.com -在Windows和Mac上运行)的情况与此类似,但我只是为了备份而复制它,并且没有尝试使用SVN连接到副本。

        7
  •  -1
  •   Elaine Murphy    16 年前

    http://wandisco.com/subversion/multisite/

    颠覆多站点杠杆 Wandisco的独特复制 立即同步的技术 通过连接的Subversion存储库 广域网。用户在 每个地点都有当地的经验 网络(LAN)速度性能 读写操作。 Subversion Multisite还提供 连续热备份和自我修复 自动化灾难的功能 恢复,使停机时间 几乎被淘汰。

        8
  •  -1
  •   lasantha    13 年前

    如果您正在逐步搜索有关使用svnsync进行主/从复制的说明,请遵循以下步骤 http://lasanthals.blogspot.com/2012/09/main-steps-of-configuring-svn_4.html