颠覆:有什么比“颠覆”更快的吗;“svnsync”是什么;?

颠覆:有什么比“颠覆”更快的吗;“svnsync”是什么;?,svn,version-control,svnsync,Svn,Version Control,Svnsync,因此,我将subversion存储库存储在一些云上(例如code.google.com),但由于各种原因,我需要使我的代码非公开 我决定需要下载整个存储库并迁移到我自己的svn服务器 所以我开始使用: svnsync init DEST SRC svnsync sync DEST 每次修订回购协议都需要0.5秒 幸运的是,我的回购协议只有大约200次修改。。。所以我要等几分钟。但是有200000或2000000次修订的成熟项目呢 。。。2e6*0.5/60/60/24~大约11天 有什么比“

因此,我将subversion存储库存储在一些云上(例如code.google.com),但由于各种原因,我需要使我的代码非公开

我决定需要下载整个存储库并迁移到我自己的svn服务器

所以我开始使用:

svnsync init DEST SRC
svnsync sync DEST
每次修订回购协议都需要0.5秒

幸运的是,我的回购协议只有大约200次修改。。。所以我要等几分钟。但是有200000或2000000次修订的成熟项目呢

。。。2e6*0.5/60/60/24~大约11天



有什么比“svnsync”更快的方法可以从云上下载您的repo吗?

很显然,您可以自己在服务器上备份它,然后压缩并下载它。或者你不能下载所有的历史记录


但这个问题的重点是什么?这有点学术性,因为你的问题已经解决了。

在我收集的存储库中,有几十万次的修订,我也有同样的问题。以下是我的应对方法:

  • 在镜像上创建空存储库
  • 创建我的存储库的gzip转储文件。(我的备份系统已经做到了这一点)(注意:这一步花了一夜时间才将我庞大的存储库发送到整个大陆)
  • scp(或您最喜欢的远程文件复制技术),将文件转储到镜像服务器
  • 加载存储库,确保指定
    --force uuid
  • 在版本0上设置revprops。我只是选择了一个正常配置的空白存储库,并查看了它的版本0

  • 现在,您可以在主服务器上运行svnsync了。这将从您的转储停止的地方继续进行。

    在OP的情况下,您没有对svn服务器的控制台访问权,
    svnsync
    (本质上是从URL 1到
    svn提交到URL 2的
    svn签出
    )与您将得到的一样好

    但是,如果您确实可以访问服务器,则有比
    svnsync
    更快的方法。构建镜像的一个好方法是使用
    svnadmin hotcopy
    创建存储库的初始副本,然后使用
    svnsync init--allow non empty
    选项将其转换为镜像。这也为您提供了一个钩子等的备份,而svnsync则不会这样做


    请注意,您需要将
    钩子
    目录移动到
    钩子原始
    或其他位置,以便镜像不会使用这些钩子——特别是如果原始repo上有一个post-commit钩子,它调用
    svnsync sync

    是的,有。由执行的复制至少比通过
    svnsync
    执行的复制快10倍。此外,镜像的VDFS存储库是可写的


    该技术使分布式团队能够以相同的速度使用Subversion存储库,就好像他们都在同一个本地网络中一样。使用VDFS技术,可以跨多个站点和位置复制主存储库,从而使读取操作的速度提高1000%。例如,50Gb的工作副本可以在10分钟内签出。通过常规互联网连接执行相同的任务至少需要一个小时

    “压缩并下载”。这确实是最快的方法,但使用subversion命令(通过subversion网络协议)无法实现,使用Google代码也可能无法实现。一点学术好奇心是不会有任何伤害的。;-)我尖刻的回答是“git更快”(因为它更快)。但是使用“svnadmin dump”和“svnadmin load”,你可能也会看到更快的速度。你如何在code上进行svnadmin转储。google.com/?@DietrichEpp你在2010年的评论很尖刻。但是,
    git
    现在是事实上的标准。考虑到
    git
    是事实标准,建议“使用
    git
    而不是
    svn
    ”是一个很好的答案。此外,我使用write-thru-mirror技术将其用作远程办公室的本地镜像。此外,我在当地办公室运行一个“紧急备份”。