SVN:将复制外部文件夹迁移到自己的项目目录中,保留并链接历史记录

SVN:将复制外部文件夹迁移到自己的项目目录中,保留并链接历史记录,svn,repository,tortoisesvn,windows-7-x64,visualsvn-server,Svn,Repository,Tortoisesvn,Windows 7 X64,Visualsvn Server,我有这个svn结构: project1 \ tags \ trunk \ ... \ libraries \ lib1 \ lib2 \ branch project2 \ tags \ trunk \ .. \ external_folder = trunk(project1) \ .. \ libraries \ lib1

我有这个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使用它们。现在一段时间过去了,我想“清理”我的存储库。 是否有方法将此外部文件夹迁移到“外部libs”项目中,同时保留历史记录?所需结构如下所示:

external_libs \ lib1 \ tags
                     \ trunk
                     \ branch

              \ lib2 \ tags
                     \ trunk
                     \ branch

project1 \ tags
         \ trunk \ ... \ libraries (extern) \ lib1
                                            \ lib2
         \ branch
啊,顺便说一下:我使用win7作为操作系统,使用tortoise svn和visualSVN服务器

感谢您提前回答:)

问候,,
奥伦

不相关

对于
external_libs
repo,我建议使用反向层次结构

/(主干|分支|标记)/(lib1 | lib2 | libN)

简短回答

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

更长的答案


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

中的所有外部定义。谢谢您的回答,我将试用它,并在它工作时发回邮件!)如前所述:我使用svn移动。感谢您的支持+建议一个倒置的层次结构!