将SVN外部转换为普通目录

时间:2016-05-02 19:40:16

标签: svn svn-externals

这似乎很简单,但我没有找到答案的运气。我的项目具有以下结构:

trunk
    src
    Doc
    lib
        external-lib1
        external-lib2

当然external-lib1external-lib2是外部svn repos。我想转换它,以便主repo具有完全相同的文件结构,但lib目录包含常规目录。如果保留外部寒冷的历史,那将是很好的,但这不是必需的。结果应如下所示:

trunk
    src
    Doc
    lib
        lib1
        lib2

2 个答案:

答案 0 :(得分:0)

进行此更改的唯一方法是手动创建lib-1,lib-2目录,并为已链接的每个外部svn存储库创建svn checkout http://link/to/external/library lib-n(没有{{1}类似的命令)。仅当您能够访问外部存储库时,此方法才有效。最后,您可以取消外部链接。

另一种可能的方法是转储存储库(它保留存储库的历史记录)并加载到存储库中。

我认为第一种方式很简单......

希望有所帮助

答案 1 :(得分:0)

假设您使用的是 Windows,这是一种不保留外部历史记录的解决方案:

svn checkout https://<repo>/trunk/lib lib
cd lib
svn propdel svn:externals .
svn commit -m "Removing svn:externals property"
rmdir /s /q lib1\.svn
rmdir /s /q lib2\.svn
svn add * --force
svn commit -m "Adding converted externals"