我刚刚创建了一个由其他回购的异构生态系统创建的mercurial repo。在我将它发布给我的同事之前,我想尽可能地清理它。为此,我想从历史中删除一些大的旧文件(假装它们从未存在过),因此repo会更小。
这可以用mercurial吗?
答案 0 :(得分:35)
查看convert
扩展程序,尤其是--filemap
选项。
通过将以下内容添加到mercurial.ini
:
[extensions]
convert =
创建要排除的文件地图:
exclude path/to/file1
exclude path/to/file2
然后转换回购:
hg convert srcrepo destrepo --filemap <map>
注意Mercurial 2.1.1中存在一个错误,导致上述命令出错:
initializing destination destrepo repository
abort: invalid mode ('r') or filename
只需添加--splicemap <nonexistent file>
选项即可解决问题。