2014-02-26 69 views
2

我有10個進程在同一臺機器上運行,隨時可以在同一個git倉庫上運行git clonegit fetch併發git克隆和提取

顯然,這是一個問題,因爲git clone將引發「directory already exist和git獲取將提高沿expected ref to be abcdfg but was hijklm在後續請求線的東西。通常,這些請求將發生在完全相同的時間,因此檢查,如果該文件夾存在榮獲」 t工作,因爲git可以在創建它的中間

我的問題是:有沒有一種方法可以檢查Git目前是克隆還是正在獲取某些東西?然後我可以編寫我的程序來等待現有的取得完成,直到繼續前進

我正在運行Ubuntu 12 LTS,如果有幫助,我的進程編碼爲Ruby,al儘管這並不重要。

讓我知道你在想什麼。

+1

您的流程應該由某種「主」管理,該流程將工作委託給不同的流程。採用這種方法,您可以實施某種形式的互斥鎖來防止這種情況。 –

回答

0

對於現有的存儲庫(所以在fetch期間),當Git運行時,它將文件寫入.git/index.lock。運行新命令之前,您的進程應等待該文件清理完畢。