我想将一个大型 Subversion 存储库中的目录拆分为它自己的存储库,并保留该目录中文件的历史记录。
我先尝试了常规的方法
svnadmin dump /path/to/repo > largerepo.dump
cat largerepo.dump | svndumpfilter include my/directory >mydir.dump
但这不起作用,因为多年来该目录已被移动和复制,并且文件已被移入和移出到存储库的其他部分。结果是很多这样的:
svndumpfilter: Invalid copy source path '/some/old/path'
接下来我尝试将/some/old/path
它们包含在内,并且在包含一长串文件和目录之后,svndumpfilter 完成,但是导入结果转储不会产生与当前目录相同的文件。
那么,如何在保留历史记录的同时正确地从该存储库中拆分目录?
编辑:我特别想trunk/myproj
成为新存储库中的主干加上新存储库不包含其他旧东西,即。任何人都不应该在拆分之前更新到旧版本并获取/查看文件。
我尝试的 svndumpfilter 解决方案可以实现这一点,遗憾的是它不可行,因为路径/文件已被移动。ng的解决方案是不可接受的,因为它基本上是一个克隆+删除额外的东西,它保留了所有的历史,而不仅仅是相关的 myproj 历史。