我的Mercurial存储库中有一个大文件阻止我的存储库上传到Bitbucket。我收到错误:
abort: HTTP Error 413: Request Entity Too Large
幸运的是,此文件的文件扩展名与我的存储库中的其他内容不同,因此应该很容易创建一个规则来排除它。但是,该文件已包含在存储库中的提交中,直到几天前它可能变得太大。我是否需要将其从历史记录以及将来的提交中删除?我需要做什么命令?
我在“ IncludeExclude Proposal ”上找到了此文档,但我不确定它是提议的功能还是实际功能:
答案 0 :(得分:4)
如果您已经提交了它,并且它看起来像你有,那么排除(也称为hgignore)将不适合您。
.hgignore(以及您在InlcudeExcludeProposal中看到的从未采用的高级语法)有助于防止您意外添加您不想添加的文件。一旦你添加了一个文件,hgignore就没有效果了,一旦你提交了它就添加它,没有EditingHistory
就无法从历史中删除它如果您可以摆脱最后几次提交(意图重新执行除了大文件添加之外的所有提交),您可以使用hg clone -r lastknowngoodextension existingrepopath newrepopath
并且您将在newrepopath处使用您的仓库减去那些不需要的扩展。我认为,Bitbucket提供了一个用于删除变更集的Web界面,但我不确定。
如果你不能克隆(或剥离)最后几个版本,那么你就可以使用mq
或convert
或类似的方式进入EditingHistory空间。
如果您希望跟踪这些文件但不在回购中,则可能需要查看bfiles extension。
答案 1 :(得分:0)
现在有可能。
TortoiseHg可以做到(有一个选项'忘记文件')。
或在控制台中输入hg forget
。