2

我的 Mercurial 存储库中有一个大文件,阻止我的存储库上传到 Bitbucket。我得到错误:

abort: HTTP Error 413: Request Entity Too Large

幸运的是,此文件的文件扩展名与我的存储库中的其他所有文件不同,因此应该很容易创建一个规则来排除它。但是,该文件一直包含在存储库的提交中,直到几天前它可能变得太大。我需要从历史和未来的提交中删除它吗?我需要什么命令来执行此操作?

我在“ IncludeExclude Proposal ”上找到了这份文件,但我不确定它是提议的功能还是实际的功能:

https://www.mercurial-scm.org/wiki/IncludeExcludeProposal

4

2 回答 2

4

如果你已经提交了它,并且看起来你已经提交了,那么 exclude(又名 hgignore)对你不起作用。

.hgignore(以及您在 InlcudeExcludeProposal 中看到的从未采用的高级语法)有助于防止您意外添加不想添加的文件。一旦你添加了一个文件,hgignore 就没有效果了,一旦你提交了添加它,没有EditingHistory就无法从历史记录中删除它

如果您可以摆脱最后几个提交(打算重做所有内容,但添加大文件),您可以使用hg clone -r lastknowngoodextension existingrepopath newrepopath并且您的 repo 会减去那些在 newrepopath 中不需要的扩展名。我认为,Bitbucket 提供了一个 Web 界面来删除变更集,但我不确定。

如果您不能只是克隆(或剥离)最后几个修订,那么您就在 EditingHistory 空间中,使用mqconvert类似的。

如果您希望跟踪这些文件但不在 repo 中,您可能需要查看bfiles 扩展名

于 2010-03-08T19:55:03.030 回答
0

现在是可能的。
TortoiseHg可以做到(有一个选项“忘记文件”)。

或者输入hg forget控制台。

于 2014-04-12T22:12:04.760 回答