gpt4 book ai didi

SVN在两个存储库之间移动具有历史记录的代码

转载 作者:行者123 更新时间:2023-12-04 04:06:41 24 4
gpt4 key购买 nike

我必须在两个存储库上工作,并且想要在保持修订历史的同时在两个目录之间移动带有代码的目录。

我在这里阅读了关于SO的一些问题,但仍然不确定该走哪条路。因为所有内容都已 checkin (代码+ designdata + ...),所以我们的存储库为巨大(文件(orkingcopy),不包括修订版本>多个GB)。

到目前为止,我看到的解决方案是:

  • svnadmin转储+过滤+导入:由于存储库大小
  • ,因此不是一个选项
  • svnsync:我们在第二个存储库中已经有数据(这些存储库已经很大,除了决定不是我的工作之外,我不认为合并它们是一个好主意),从我的收集中需要第二存储库为空。
  • Third Party Solution :反复崩溃,因为由于“另一个进程没有打开文件”而无法删除文件(尽管我可以通过os删除文件,并且由脚本创建)

    是否有其他解决方案,解决方法,或者我缺少其中一种解决方案?

  • 最佳答案

    svnadmin dump + filter + import即使在大型存储库中也可以使用。

    您需要做一些事情来提高性能。
    找出哪个版本是首先创建要复制的文件夹的版本。然后检查日志以查找修改该文件夹中任何内容的最新修订。您只需要转储该范围内的修订。

    使用--incremental标志进行svndump。

    不要尝试将Deltas标志与SVN转储一起使用。 SvnDumpFilter不适用于使用“deltas”创建的转储。
    不要尝试将巨大的转储保存到文件中,并在该文件上运行SvnDumpFilter。而是一步一步地用管道来完成。

    如果您的起始版本是10000,结束版本是20000,并且要复制的路径是projects/source,则命令应如下所示:

    svnadmin dump --incremental -r10000:20000 YourRepoPath | svndumpfilter include projects/source --drop-empty-revs --renumber-revs > source.dump

    紧随其后的是svnadmin load命令,以将转储加载到其他存储库中。

    关于SVN在两个存储库之间移动具有历史记录的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13010496/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com