2014-01-29 76 views
2

對於在github.com私有存儲庫中存在的項目,我正在設置gerrit代碼審查。gerrit和github.com之間的雙向同步可能嗎?

我正在使用gerrit的複製插件來保持gerrit存儲庫與github.com同步。但是如果有人提交(比如說commit-a)並直接推送到github.com,當gerrit執行復制過程時(因爲它只複製gerrit鏡像中的內容),github.com會覆蓋commit-a

但我想實現雙向同步。例如,無論何時推向gerrit,都必須檢查github.com並用新代碼更新其鏡像,然後繼續合併。

這可能嗎?

回答

4

這是一個難題。您所描述的多主設置在許多地方都存在,但依賴於所涉及的系統進行高度集成和構建以支持這一點。

我看到兩個選項:

  • 兩個格里特和Github上必須能夠互相交談,並允許服務器A上的git被鎖定,而B服務器更新其參考。一旦B被更新,數據被複制到A,並且A被解鎖。此功能不存在,可能永遠不會。
  • 接收推送的服務器可能會很樂觀,並希望不會發生併發更新。對於一箇中等繁忙的服務器來說,這大多數時間不會發生,但如果發生這種情況,則必須有一個理智的恢復策略。如果併發檢查是異步完成的,即使不是不可能,恢復變得困難得多,即,例如, Gerrit在推動Github事務實際上確保交易之前發出信號「okay」。同步更新可以解決這個問題,但對性能和可靠性不利。
1

這可能不是直接回答你的問題,但如果你會作出格里特你的真理之源,你只關心引入請求,您可以使用github plugin到PR導入到格里特變化。

當然,如果有人直接向Github推送提交,這無濟於事。我一般同意Magnus Bäck

+0

我試過github插件。但是,我將它們安裝到gerrit時遇到了很多問題。爲什麼我們沒有編譯像jQuery這樣的必要插件,比如github-api。我機器中的降壓總是失敗,需要深入瞭解才能解決問題。 – Virtual

相關問題