mercurial - 使用什么命令从 Mercurial 存储库中排除文件?

标签 mercurial bitbucket

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

abort: HTTP Error 413: Request Entity Too Large

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

我在“包含排除提案”上找到了此文档,但我不确定它是提议的功能还是实际的功能:

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

最佳答案

如果您已经提交了它,而且看起来您已经提交了,那么排除(又名 hgignore)对您不起作用。

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

如果您可以删除最后几次提交(意图重新执行除大文件添加之外的所有提交),您可以使用 hgclone -r lastknowngoodextensionexistingrepopathnewrepopath ,您将让您的存储库在 newrepopath 中减去那些不需要的扩展。我认为 Bitbucket 提供了一个 Web 界面来删除变更集,但我不确定。

如果您不能直接克隆(或剥离)最后几个修订版本,那么您就处于 EditingHistory 空间中,使用 mqconvert 或类似工具。

如果您希望跟踪这些文件但不在存储库中,您可能需要查看 bfiles extension .

关于mercurial - 使用什么命令从 Mercurial 存储库中排除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2402791/

相关文章:

mercurial - 创建本地存储库时,Mercurial 是否会创建服务器进程?

java - 将代码推送到 bitbucket 时构建 jenkins 作业

Gitkraken 工作流程 : how to Init local and remote?

mercurial - 如何正确使用hg共享扩展?

mercurial - 如何让 meld 使用 hgignore

eclipse - 无论如何要让 MercurialEclipse 表现得像 NetBeans Mercurial 支持?

git - 有没有办法将 azure synapse studio 连接到 bitbucket repo?

git - 您的配置指定与远程的 <branch name> merge ,但未获取此类引用。?

git - 如何更新 bitbucket 上的 pull 请求?

google-app-engine - 在 Google AppEngine 上运行 Mercurial 服务器