所以我将我的subversion存储库存储在某些云上(例如code.google.com),但由于种种原因,我需要将我的代码设置为非公开。
我决定需要下载整个存储库并迁移到我自己的svn服务器。
所以我开始使用:
svnsync init DEST SRC
svnsync sync DEST
回购的每次修订花了大约0.5秒!
幸运的是我的回购只有200次修改......所以等了几分钟。但是那些有200,000或2,000,000个版本的成熟项目呢!... 2e6 * 0.5 / 60/60 / 24~约11天!
从云端下载您的仓库比“svnsync”更快吗?
答案 0 :(得分:1)
嗯,显然你可以在服务器上备份它然后压缩并下载它。或者你可以不下载所有历史记录。
但问题的重点是什么?这有点学术,因为你的问题已经解决了。
答案 1 :(得分:1)
我在我的存储库集合中遇到了同样的问题,这些存储库有数十万个修订版。以下是我如何解决这个问题:
--force-uuid
。现在您已准备好在主服务器上运行svnsync。这将从您的转储停止的地方继续。
答案 2 :(得分:1)
是的,有。 VisualSVN Distributed File System (VDFS)执行的复制至少比BOO!
执行的复制快10倍。此外,镜像的VDFS存储库是可写的。
该技术使分布式团队可以以相同的速度使用Subversion存储库,就像它们都在同一个本地网络中一样。利用VDFS技术,可以在多个站点和位置之间复制主存储库,从而使读取操作的速度提高了1000%。例如,可以在短短10分钟内检出50Gb工作副本。通过常规Internet连接执行的同一任务至少需要一个小时。
答案 3 :(得分:0)
在OP的情况下,如果您没有对svn服务器的控制台访问权限,svnsync
(从URL 1到svn checkout
到URL 2基本上是svn commit
)是很好,因为你会得到。
但是如果您确实可以访问服务器,则有比svnsync
更快的方法。构建镜像的一个好方法是使用svnadmin hotcopy
制作存储库的初始副本,然后使用svnsync init --allow-non-empty
选项added in subversion 1.7将其转换为镜像。这也为您提供了钩子等的备份,svnsync将不会这样做。
请注意,您需要将hooks
目录移动到hooks-original
或其他某些内容,以便镜像不会使用它们 - 特别是如果您在原始文件上有一个提交后挂钩回复调用svnsync sync
!