我使用了一些离我很远的大型SVN存储库。执行SVN历史相关命令非常痛苦。相反,只使用SVN中的任何一个都非常痛苦。我只需要每周推送一次我的更改,但我仍然喜欢经常提交,而不是做大量的提交。
由于SVN repos只能获得新的历史记录(即:历史记录无法更改,现有修订版本是永久性的),因此存在SVN镜像技术肯定是可行的。特别是,可以做1或2:
创建一个本地SVN镜像,它执行ENTIRE仓库的初始副本(不仅仅是一个简单的结账,我需要本地的整个仓库以便能够快速完成差异),
创建一个本地git代理仓库,它是SVN仓库的复制/迁移。
答案 0 :(得分:3)
这是git-svn
的一个很好的用例 - 它允许您使用git
在本地高效地工作,包括查询整个历史记录而无需联系svn服务器,同时保持存储库同步使用远程SVN。
要开始使用它,只需从git svn clone http://svn.example.com/project/trunk
开始,这将为您提供功能齐全的git
存储库。当您准备好将本地提交推送回SVN时,执行git svn dcommit
。通过git svn rebase
完成新的SVN提交(并将您的本地提交重新定位)。
答案 1 :(得分:2)
实际上有一种方法可以镜像Subversion存储库。但首先,您需要能够在“主”存储库上安装钩子脚本。然后使用svnsync
将每个提交同步到本地镜像。有关如何设置复制的信息,请参阅http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.replication。
然后将该本地镜像/副本配置为write-through proxy,以自动将您的提交传递到主存储库。
答案 2 :(得分:0)
使用the write-through proxy solution将帮助您减少阅读时间。提交仍然通过奴隶代理,因此在进行导入,提交等时你不会看到任何收益。
要实现真正的主/从存储库复制,您可以使用VisualSVN服务器Multisite Repository Replication feature。该功能允许您在办公室设置主存储库,在其他远程办公室中设置多个可写的从属存储库。