2015-12-14 81 views
6

this link類似,但適用於mercurial。我想找到最有助於我的mercurial存儲庫大小的文件。在Mercurial Repository中查找大文件

我打算使用hg convert來創建一個新的較小的存儲庫。我只是不確定哪些文件會影響存儲庫的大小。它們可能是已被刪除的文件。

什麼是在資料庫歷史中的任何地方找到這些資源的好方法?有超過20,000次提交。我在想一個PowerShell腳本,但我不確定最好的方法是什麼。

回答

7

檢查hg help fileset。像

hg files "set:size('>1M')" 

應該爲你做的伎倆。您可能需要對所有版本進行操作,但它只能在一個版本上運行。在bash我想嘗試類似於

for i in `hg log -r"all()" "set:size('>400k')" --template="{rev}\n"`; do hg files -r$i "set:size('>400k')"; done | sort | uniq 

可能會訣竅。也許它可以被優化,因爲它目前有點重複,可能會運行很多;在OpenTTD存儲庫上提供22000次提交,它在我的筆記本電腦上花費了10分鐘。

(同時檢查汞幫助上templatesfilesgrep

+1

謝謝,這能創造奇蹟。我正在使用Windows。爲了完整性,powershell腳本是'hg log -r「all()」「set:size('> 1024k')」--template =「{rev} \ n」| Foreach {hg files -r $ _「set:size('> 1024k')」>> results.txt; get-content results.txt | sort | get-unique> results2.txt; Remove-Item results.txt; Move-Item results2.txt results.txt}並且bat文件將會在/'hg log -r「all()」「set:size('> 1024k')」--template = 「{rev} \ n」')DO hg files -r%i「set:size('> 1024k')」>> results.txt'(即不排序/過濾) – Michael