2011-03-27 56 views
2

對於我當前的項目,我使用Mercurial並將其託管在Bitbucket上。清理版本控制中未使用的舊大文件

這是我第一個真正正確使用版本控制的項目,所以我犯了一些錯誤。其中之一是我用代碼存儲了我的項目在存儲庫中使用的所有(未壓縮)聲音文件。

因此,現在即使我不再將這些文件存儲在那裏,第一次從服務器拉出仍然需要相當長的時間(我猜存儲庫會保存所有這些以便我可以如果我想恢復這些文件?),並且該項目佔用的空間比應該多。

這不是一個大問題,但我想知道什麼是現在修復它的好方法。此外,這種對資源庫的「破壞性」編輯是否會影響與其他分支的「兼容性」(即會產生推動分支間變化的問題)?

謝謝!如果需要更多細節,請在評論中提問。

類似/有關:How to cleanup Mercurial repository?

回答

3

您可以使用convert extension和命令重建回購和刪除特定的文件,而這樣做。但是,正如你猜對的那樣,這種改變確實會產生新的變更集哈希值,並因此破壞與其他分支的「兼容性」。

+1

以這種方式存儲庫的完整性是一把雙刃劍,而我們將不得不忍受這樣的錯誤。 – invert 2011-03-28 07:42:58

+0

感謝您的回答。現在,通過我理解哈希與mercurial一起工作的方式來判斷,如果我執行相同的確切操作(比如從變更集X中刪除某個文件A),那麼在repo 1和它的分支2中(其中分支發生在稍後的變更集中X的後裔),是不是應該以相同的方式重新組織(並因此繼續兼容)? (我會在我的回購庫的一些副本上進行實際測試,看看它是否可以實現) – 2011-03-28 14:42:53

+0

不,因爲對父變更集的引用也包含在內,所以如果父變更不一致,就會改變散列值。 – Lucero 2011-03-28 17:17:24

1

此外,將庫的這種「破壞性」的編輯影響與其它叉「兼容」?

是的,會的。對你有好的想法!它將成爲一個新的存儲庫。