删除历史记录中的文件以节省mercurial中的一些空间

时间:2010-10-13 01:20:10

标签: mercurial

好吧,当我年轻的时候,我把重要的大文件(比如资源文件,dll等)放在我的mercurial回购中。我发现它的大小太大了我不能轻易将它推入bitbucket,

删除此文件历史记录的任何方法轻松

我将所有这些文件放在/ res和/ dll路径中。

编辑:

这是一个解决方案,但它会删除部分历史记录,因此可能有更好的解决方案。 Mercurial Remove History

1 个答案:

答案 0 :(得分:18)

你最好的选择是使用转换扩展程序,但警告你最终会得到一个完全不同的回购。每个哈希都是不同的,每个克隆的人都需要删除他们的克隆并重新克隆。

那就是说,这就是你所做的:

创建一个名为filemap.txt的文件映射文件,其中包含:

exclude res
exclude dll

然后运行此命令:

hg convert --filemap filemap.txt your-source-repository your-destination-repository

例如:

hg convert --filemap filemap.txt /home/you/repos/bloatedrepo /home/you/repos/slenderrepo

除了/ res和/ dll中的任何文件的历史记录之外,这将为您提供一个包含所有历史记录的全新回购,但就mercurial(和bitbucket)而言,它将是一个新的,无关的回购。