2010-03-08 55 views
2

我在我的Mercurial存储库中有一个大文件,它阻止我的存储库上传到Bitbucket。我得到的错误:您使用什么命令从Mercurial存储库中排除文件?

abort: HTTP Error 413: Request Entity Too Large 

幸运的文件扩展名的文件是一切都在我的仓库有什么不同,所以应该很容易创建一个规则来排除它。然而,这个文件已经包含在仓库中的提交中,直到几天前它可能变得太大了。我是否需要从历史记录以及未来的提交中删除它?我需要做什么命令?

我发现这个文件对“IncludeExclude建议”但我不知道这是否是一个提议的特性或实际之一:

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

回答

4

如果您已经提交它,它看起来像你有,然后排除(又名hgignore)不会为你工作。

.hgignore(以及您在InlcudeExcludeProposal中看到的从未采用的高级语法)有助于防止您意外添加不希望添加的文件。一旦你添加了一个文件hgignore没有任何作用,并且一旦你承诺添加它就没有办法从历史中删除它没有EditingHistory

如果你可以摆脱最后几个提交(意图重新做所有的事情,除了大文件增加),你可以使用hg clone -r lastknowngoodextension existingrepopath newrepopath,你会有你的回购减去newrepopath那些不需要的扩展。我认为,Bitbucket提供了一个Web界面来删除变更集,但我不确定。

如果您不能仅克隆(或剥离)最后几个版本,那么您将进入EditingHistory空间,使用mqconvert或类似的。

如果你想跟踪这些文件,但不是在回购你可能想看看bfiles extension

0

现在有可能。
TortoiseHg可以做到这一点(有一个选项'忘记文件')。

或在控制台中键入hg forget

相关问题