将无版本的目录结构合并到SVN存储库中

Mei*_*bur 5 unix svn

我将第三方项目提交到我自己的svn存储库中.现在,我得到了该项目的新版本,我想在我的存储库中替换它.

该项目非常大(1.2GB),新版本有新文件/目录,也删除了文件/目录.

琐碎的解决方案是

svn rm project
mv /path/to/new/project .
svn add project
svn ci
Run Code Online (Sandbox Code Playgroud)

但是,我放弃了历史.此外,svn服务器将无法使用增量压缩(是的,服务器空间确实很重要).

另一种方法是只覆盖工作目录中的所有文件,然后提交它.但是,已删除的文件仍保留在存储库中.svn add --force *也"忘了"添加一些文件.

提交新版本的其他可能性有哪些?这是一个不寻常的用例,所以没有内置支持吗?(使用Tortoise SVN我会弄乱.svn文件夹,Tortoise提供删除提交对话框中丢失的文件/文件夹,但命令行版本如果遇到未删除的文件/文件夹则拒绝提交svn rm)

额外1:如何避免我的存储库中的更改被覆盖?(只有少数,所以目前可以重新申请)

额外2:我用目的地的副本替换了所有符号链接(以消除special status changed错误).怎么避免这个?

额外3:如何应对重命名的文件/目录?由于我刚刚获得没有更改历史记录的新版本,因此无法自动确定这些版本.svn mv在提交之前?

dB.*_*dB. 5

fs2svn工具是svn2svn的一部分,完成了您所需要的基础知识.从这篇文章开始.