有没有办法从 svn 存储库中删除文件,包括其所有历史记录?当我想摆脱驻留在 repo 中的大型二进制文件时,就会出现这个问题。
在这种情况下,我只知道一种方法可能会有所帮助:
svnadmin
的帮助下转储所有 repo公用事业。 grep
过滤转储文件. Grep 应该使用文件名并写入另一个转储文件 svnadmin
导入最后一个转储文件但这太复杂了,也不可靠。也许还有另一种解决方案?
最佳答案
最近使用命令 svndumpfilter
变得更加简单。 .详细信息可在 subversion 文档 here 中找到.基本上,为了避免冲突(解释为 here ),它需要一个 repo 转储并重做每个提交,包括或排除给定的文件前缀。基本语法:
svndumpfilter exclude yourfileprefix < yourdump > yournewdump
排除可能是提问者正在寻找的内容,但您也可以使用 include 来提取存储库的子树,以便将其作为自己的存储库分拆出来。
subversion (very meta) 中 subversion 的最新版本也可以采用 glob 模式。我最近不得不从 repo 中删除所有 pdfs,它很容易完成,如下所示:
svndumpfilter exclude --pattern '*.pdf' < dump > dump_nopdfs
可以通过调用
svndumpfilter help
找到更多使用信息和 svndumpfilter help exclude
.
关于svn - 从 svn 存储库中删除包含所有历史记录的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050475/