2010-03-08 42 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

相關問題