SVN:将复制外部文件夹迁移到自己的项目目录中,保留并链接历史记录
我有这个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
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移动。感谢您的支持+建议一个倒置的层次结构!