似乎是一个简单的问题:
我想以某种方式(从内部,最有可能)在一个中进行所有更改,并将它们应用于另一个。反之亦然。听起来很简单,我认为喜欢GIT可以做到这一点,但我们正在使用SVN。
有人这样做过吗?我不介意它是一个手动过程 - 只有几个外部人员,他们不需要每天更新,每天两到三次。
我相信apache.org会这样做,但是我找不到关于他们如何做到这一点的文档。有一些产品在那里做(好吧,一个),但我很想知道是否有人有一个漂亮,干净的方式来做它没有它们。 svnsync执行此操作,仅在一个方向(主从)
很高兴让它在Windows,Linux或Mac上运行,因为我们拥有它们。 Windows和Mac首选。
帮助! :):)
[更新]经过12个月的捣乱(最后不需要这个),在我看来,正确答案是正确的。使用git - 有一个从SVN-A拉出的repo,然后推送到新的git repo,然后从那里推送到SVN-B。应该工作:)
答案 0 :(得分:6)
这两个版本都允许您创建svn存储库的外部镜像,并允许外部开发人员直接向外部镜像提交。然后,您可以将此外部镜像中的更改拉入并推送到内部主仓库。
git-svn会(我认为)要求外部开发人员使用git。我更喜欢它,但我不愿意把它推到别人身上。
但是,SVK允许外部开发人员继续使用svn。由于内部存储库只能在内部访问,因此内部帐户或用户必须处理定期同步(cron作业可能会起作用)。这是SVK维基上的扩展指南:UsingSVKAsARepositoryMirroringSystem
答案 1 :(得分:3)
简单通常是最好的方式,听起来你已经有了一个简单的解决方案:在防火墙外使用SVN存储库。
你已经说过防火墙内的机器可以到达它,显然外面的机器可以到达它......所以这就是每个人,那么你有什么理由对防火墙内的第二个SVN存储库有什么理由呢?如果它只是一个备用,那么只需备份外面的那个。
如果我遗漏了您的部分要求,请告诉我。
另一个想法......如果你有内部和外部的SVN实例......为了不同的目的,什么阻止它们同时给出相同的变更列表ID?如果您正在寻求一种分散式解决方案,您应该关注GIT而不是SVN。
答案 2 :(得分:3)
VisualSVN Server企业版的一个功能是多站点存储库复制,它可以完全满足您的需求。
该功能基于VisualSVN分布式文件系统(VDFS)技术,该技术旨在实现跨地理分布式站点的透明Subversion存储库复制。 VDFS的一些显着特征:
值得注意的是VDFS遵循经典的主从复制模型,该模型与 master-master 复制模型相比具有明显的优势,因为它是更适合使用FSFS fs-type后端复制Subversion存储库。 VDFS技术比SVN的主 - 主复制解决方案更可靠。
答案 3 :(得分:1)
答案 4 :(得分:0)
最无缝和可扩展的解决方案是使用Subversion书中描述的svnsync进行主/从复制:http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd.extra.writethruproxy
答案 5 :(得分:-1)
您可以尝试的一件事是在文件级复制repo。我正在使用FolderShare(http://www.foldershare.com - 在Windows和Mac上运行)来实现类似的方案,尽管我只是为了备份而复制它,并且没有尝试使用SVN连接到副本。
答案 6 :(得分:-1)
http://wandisco.com/subversion/multisite/
Subversion MultiSite利用 WANdisco的独特复制 技术立即同步 Subversion存储库连接在一起 广域网(WAN)。用户在 每个地方都有当地体验 网络(LAN)速度性能 读写操作。 Subversion MultiSite还提供 持续热备份和自我修复 自动化灾难的功能 恢复,以便停机 几乎被淘汰了。
答案 7 :(得分:-1)
如果您正在使用svnsync搜索有关主/从复制的分步说明,请关注http://lasanthals.blogspot.com/2012/09/main-steps-of-configuring-svn_4.html