2012-03-13 51 views
3

作爲最近提出的一個暗示問題,我正在尋找一種方法來加快Git存儲庫上運行大量文件(約600萬)的操作。我寧願不使用子模塊。問題是操作很慢。是否有可能有一個大的存儲庫,但指示Git只關注存儲庫的一部分?我認爲可能創建一個稀疏檢出會執行它,但讀取樹操作似乎刪除稀疏檢出文件中未指定的文件,並且需要很長時間。是否有可能做一個閱讀樹保留所有文件,它們只與稀疏檢出文件中指定的文件數量成正比?有沒有辦法將Git限制在稀疏結賬?

回答

1

目前沒有,沒有。 Git最近才添加(1.7+)任何稀疏結帳支持,它仍然是相當裸露的骨頭 - 主要是因爲Git的設計並非真正用於處理只與部分存儲庫一起工作。

它更多地被設計成一個單一版本的項目版本控制系統。子模塊是選擇處理具有許多大型子組件的「項目」的方法。

0

首先,我會建議學習和使用子模塊。

您可以編寫腳本你用

git ls-tree sha1 
git show sha1:path/to/some/file.txt 

和其他低級別的命令一樣。另見bash命令,如

xargs 
grep 
cut 

和管路。