Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从mercurial存储库中删除不需要的历史记录的最简单方法_Mercurial_Bitbucket - Fatal编程技术网

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

从mercurial存储库中删除不需要的历史记录的最简单方法,mercurial,bitbucket,Mercurial,Bitbucket,当我开始使用Mercurial时,我将我所有的“研究与资源”存储在repo中,其中包括GBs的视频。这些大文件会随着时间的推移而累积,并跨变更集进行跟踪 我最近从repo中“删除”了这些文件夹,因为我想开放项目的源代码,而这些只是个人资源,只会拖累存储库 然而,尽管将这些资源移出回购协议,所有视频仍存储在历史记录中。这使得将repo克隆到服务器的速度非常缓慢,而且似乎不可能将其推送到BitBucket 我是否正确地认为,最简单的方法是备份当前的repo,hgint一个只包含核心项目文件的新文件(

当我开始使用Mercurial时,我将我所有的“研究与资源”存储在repo中,其中包括GBs的视频。这些大文件会随着时间的推移而累积,并跨变更集进行跟踪

我最近从repo中“删除”了这些文件夹,因为我想开放项目的源代码,而这些只是个人资源,只会拖累存储库

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


我是否正确地认为,最简单的方法是备份当前的repo,
hgint
一个只包含核心项目文件的新文件(从版本历史开始),并将其记为有趣的学习体验?

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

hg convert --filemap FILEMAP old-repo new-repo
其中
FILEMAP
是一个包含转换规则的文件,例如

exclude path/to/largefiles  

签出
hg帮助转换
。但是,旧的存储库和新的存储库将类似地不相关,就像通过简单的
hgint
创建的新存储库一样。但是您保留了您想要保留的历史记录和文件部分。

谢谢。如果我已经移动并重命名了这些文件夹几次,我将如何排除路径/to/largefile?我是否应该排除回购历史期间这些文件所处的所有可能路径?我还没有测试过自己,但可能是的。通过获取一个(或多个)文件的历史记录来检查以前的名称:
hg log——遵循文件名
最后,当我找到您时,我应该备份旧的repo,还是
hg convert
不影响旧的repo?再次感谢你,我从来没有受伤过。但是
convert
就像
clone
一样,是一个不涉及原始回购的操作