Git 使用本地存储库加速SVN?
我使用的是距离我很远的大型SVN存储库。执行与SVN历史记录相关的命令非常痛苦。相反,仅仅使用任何SVN都是相当痛苦的。我只需要每周推送一次我的更改,但我仍然喜欢经常提交,而不是做大量提交 由于SVN回购只能获得新的历史(即:历史无法更改,现有的修订是永久的),因此SVN镜像技术的存在听起来确实可行。特别是,一个可以执行1或2:Git 使用本地存储库加速SVN?,git,svn,version-control,Git,Svn,Version Control,我使用的是距离我很远的大型SVN存储库。执行与SVN历史记录相关的命令非常痛苦。相反,仅仅使用任何SVN都是相当痛苦的。我只需要每周推送一次我的更改,但我仍然喜欢经常提交,而不是做大量提交 由于SVN回购只能获得新的历史(即:历史无法更改,现有的修订是永久的),因此SVN镜像技术的存在听起来确实可行。特别是,一个可以执行1或2: 创建一个本地SVN镜像,对整个回购协议进行初始拷贝(不仅仅是简单的签出,我需要整个回购协议能够在本地快速进行差异化操作) 创建本地git代理回购协议,该协议是SVN回购
这是一个很好的使用案例-它允许您在本地高效地使用
git
,包括在不联系svn服务器的情况下查询整个历史记录,同时保持存储库与远程svn同步
要开始使用它,只需从git svn clone开始http://svn.example.com/project/trunk,它为您提供了一个功能齐全的
git
存储库。当您准备将本地提交推回到SVN时,您可以执行git SVN DCOMIT。获取新的SVN提交(并对本地提交进行重定)是通过git-SVN-rebase
完成的,实际上有一种方法可以镜像Subversion存储库。但首先,您需要能够在“主”存储库上安装钩子脚本。然后使用svnsync
将每个提交同步到本地镜像。有关如何设置复制的信息,请参阅
然后将本地镜像/副本配置为自动将提交传递到主存储库。使用将帮助您减少只读时间。提交仍然是通过从服务器代理的,因此在执行导入、提交等操作时,您不会看到任何收益
要实现真正的主/从存储库复制,可以使用VisualSVN服务器的。该功能允许您在办公室设置一个主存储库,在其他远程办公室设置多个可写的从属存储库。谷歌搜索“git svn”时返回的第一个链接:我怎么知道搜索“git svn”lol?因为您想将git和svn结合起来。顺便说一句,谷歌搜索“创建一个本地git代理回购协议,它是SVN回购协议的副本/迁移”,返回相同的链接。这就是你在问题中的文字。是的,但我不确定我是否愿意采用这种方法。最好只使用SVN解决方案。我尝试使用git svn,但失败并创建了一个损坏的回购协议。这就是为什么我更愿意关注其他尝试过这种方法的人,而不是花几个小时在所有这些不同的排列上。