【问题标题】:SVN: migrate-copy external folder into own project directory, keep and link historySVN:将外部文件夹迁移复制到自己的项目目录中,保留和链接历史记录
【发布时间】:2014-05-05 13:56:34
【问题描述】:

我有这个svn结构:

project1 \ tags
         \ trunk \ ... \ libraries \ lib1
                                   \ lib2
         \ branch

project2 \ tags
         \ trunk \ .. \ external_folder = trunk(project1) \ .. \ libraries \ lib1
                                                                           \ lib2
         \ branch

有一天我在 project1 中使用了一些库,如 STM32 或 FAT 文件系统。 我没有创建一个名为“external libs”的自己的项目并使用 SVN:externals,而是让它们保留并通过 project2 中的 SVN:externals 在外部文件夹中使用它们。现在已经过去了一段时间,我想“清理”我的存储库。 有没有办法将此外部文件夹迁移复制到“外部库”项目中,同时保留历史记录?所需的结构如下所示:

external_libs \ lib1 \ tags
                     \ trunk
                     \ branch

              \ lib2 \ tags
                     \ trunk
                     \ branch

project1 \ tags
         \ trunk \ ... \ libraries (extern) \ lib1
                                            \ lib2
         \ branch

啊,顺便说一句:我用win7做操作系统,用龟龟svn和visualSVN服务器。

提前感谢您的回答:)

问候, 奥伦

【问题讨论】:

    标签: svn repository tortoisesvn windows-7-x64 visualsvn-server


    【解决方案1】:

    不相关

    对于external_libs repo,我建议使用倒置层次结构

    /(trunk|branches|tags)/(lib1|lib2|...|libN)

    简答

    是的,可以在新存储库中保留 lib* 的更改历史记录

    更长的答案

    您可以将\ libraries\lib* 的数据和所有相关修订版移动到新的存储库中,但这需要使用 TortoiseSVN 之外的工具。即:您必须创建存储库部分的转储(svnadmin dump ...| svndumpfilter ... 或只是svnrdump dump URL)并将此转储(svnadmin load --ignore-uuid --parent-dir ...)加载到新存储库中。加载后,您必须更改 project1

    中的 all 外部定义

    【讨论】:

    • 谢谢你的回答,我会试试看,当它工作时回邮件! :)
    • 如此处所述:stackoverflow.com/questions/23613782/… 我使用了 svn move。感谢您的支持 + 建议倒置层次结构!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多