我有这个svn结构:
project1 \ tags
\ trunk \ ... \ libraries \ lib1
\ lib2
\ branch
project2 \ tags
\ trunk \ .. \ external_folder = trunk(project1) \ .. \ libraries \ lib1
\ lib2
\ branch
有一天,我在project1中使用了一些像STM32或FAT Filesystem这样的库。 而不是创建一个名为"外部库的自己的项目"并使用SVN:externals,我让它们保留并通过SVN在外部文件夹中使用它们:project2中的externals。现在已经过去了一段时间,我希望"清理"我的存储库。 有没有办法将此外部文件夹迁移复制到"外部库"项目同时保留历史记录?所需的结构如下所示:
external_libs \ lib1 \ tags
\ trunk
\ branch
\ lib2 \ tags
\ trunk
\ branch
project1 \ tags
\ trunk \ ... \ libraries (extern) \ lib1
\ lib2
\ branch
啊,顺便说一下:我使用win7作为操作系统和tovise svn和visualSVN服务器。
提前感谢您的回答:)
此致 AUREON
答案 0 :(得分:1)
<强>相依强>
对于external_libs
回购,我建议使用反向层次结构
/(trunk|branches|tags)/(lib1|lib2|...|libN)
简短回答
是的,可以在新存储库中保留lib*
中的更改历史记录
更长的答案
您可以将\ libraries\lib*
的数据和所有相关修订移动到新的存储库中,但需要使用TortoiseSVN之外的工具。即:您必须创建存储库部件(svnadmin dump ...| svndumpfilter ...
或仅svnrdump dump URL
)的转储并将此转储(svnadmin load --ignore-uuid --parent-dir ...
)加载到新存储库中。加载后,您必须更改project1