2012-02-23 12 views
1

當我使用Mercurial重命名文件,然後提交而沒有任何更改時,爲什麼它仍將完整文件發送到存儲庫? (我可以說,因爲隨後推送到遠程存儲庫顯示有多少數據正在傳輸)。它不是很明顯,它只需要重命名?在Mercurial中對文件重命名的低效處理

我在Windows下使用最新版本的TortoiseHG,並且有問題的文件是20MB的文本文件。

回答

3

這是Mercurial使用的存儲格式中已知的缺陷。您可以搜索"lightweight copies"查看完整故事,但是簡要地說,問題是在重新命名時爲新文件名創建了新的revlog。新的revlog從完整文件的壓縮快照開始 - 這通常不是一個大問題,但它仍然大於零大小的delta。

除非您想修補Mercurial並運行實驗性代碼,否則您現在幾乎無法做到這一點。好消息是,您只需等待:我們一直在努力的補丁將能夠將現有的存儲庫自動轉換爲更高效的存儲庫。當您通過網絡hg clone或本地使用hg clone --pull時會發生這種情況。

+0

完美,謝謝 – max 2012-02-23 20:46:22