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

lin*_*ida 13 mercurial

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

删除此文件历史记录的任何方法都很容易

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

编辑:

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

Ry4*_*ase 18

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

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

创建一个名为contains的文件映射文件filemap.txt:

exclude res
exclude dll
Run Code Online (Sandbox Code Playgroud)

然后运行此命令:

hg convert --filemap filemap.txt your-source-repository your-destination-repository
Run Code Online (Sandbox Code Playgroud)

例如:

hg convert --filemap filemap.txt /home/you/repos/bloatedrepo /home/you/repos/slenderrepo
Run Code Online (Sandbox Code Playgroud)

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