0
我正在開發一個使用Git作爲數據庫的應用程序。我目前的做法是調用git
shell命令來構造一個新的提交,無論應用程序什麼時候改變。這非常簡單,但是一個很大的缺點是它不允許任何併發寫入數據庫:兩個線程不能同時構建提交,因爲有一個HEAD
,一個index
和一個工作副本。併發git checkout/add/commit
但是,由於提交,樹和blob都是內容尋址,所以我認爲應該可以同時構建所有這些。對此的推薦方法是什麼?也許:
- 命令行標誌,以
git add
,git commit
等,其中明確指定不同的HEAD
和index
文件來使用。據我所知,這些東西不存在。 - 使用git plumbing命令進行所有操作。但是,我不是他們的專家,我不完全確定哪些是線程安全的。
- 一個Git服務,可以連接一個傳統的數據庫連接,它可以提供對Git存儲庫的事務併發訪問。據我所知,這樣的事情不存在。我曾考慮寫一個。
- 放棄並做一個
git clone
爲每個併發用戶獲取一個全新的工作副本。這是非常昂貴的。
我不知道如何幫助 - 這似乎是在同一個存儲庫同時提交到兩個不同的分支是不可能的,至少在Git瓷器的命令下是不可能的。我也沒有解決現階段合併衝突或分支更新的問題;只是如何同時構造提交的問題。 – jameshfisher