从mercurial存储库中删除GB不需要的历史记录的最简单方法

时间:2016-03-11 14:18:13

标签: mercurial bitbucket

当我开始使用Mercurial时,我存储了我的所有"研究&资源"在回购中,其中包括GB的视频。这些大型文件随着时间的推移而累积,并在变更集中进行跟踪。

我最近"删除"来自repo的这些文件夹,因为我想开源项目,这些只是个人资源,只会影响存储库。

然而,尽管将这些资源从回购中移出,但所有视频仍然存储在历史记录中。这使得将repo克隆到服务器的速度非常慢,而且似乎无法将其推送到BitBucket。

我认为最简单的做法是备份当前的仓库,hg init一个只有核心项目文件的新备份(从版本历史记录开始),并将其作为一个有趣的学习经历?

1 个答案:

答案 0 :(得分:1)

创建一个全新的存储库当然是可能的。然而,历史也很有趣。您可以在旧存储库上使用hg convert,并排除您不希望成为该进程中新存储库一部分的文件。然后,您可以共享由此创建的新精简存储库。

hg convert --filemap FILEMAP old-repo new-repo

其中FILEMAP是包含转换规则的文件,例如

exclude path/to/largefiles  

结帐hg help convert。旧的和新的存储库将类似地不相关,因为由简单的hg init创建的新存储库也是如此。但是你保留了你想保留的历史和文件部分。