2012-10-25 43 views
3

題目中的問題。我想用像gerrit或phabricator這樣的工具來改進我們的代碼審查。我們無法訪問託管我們的git存儲庫的服務器,但我們有其他服務器,我們可以運行gerrit或phabricator - 取決於哪一個更好/讓我們做我們想做的。是否有可能在一臺服務器上運行gerrit/phabricator(代碼審查),另一臺服務器上運行git存儲庫?並讓他們同步?

第一個問題:有可能嗎? 二:如何做到這一點?

+1

你就能夠推動打算到兩個地方? Gerrit和您的其他託管服務提供商?如果將其限制爲Gerrit,則可以使用post-receive鉤子鏡像到其他存儲庫。我現在用我的一些回購協議做這件事。我在我自己的服務器上託管回購協議(對我來說),但是當我推送給他們時,它會轉向並將他們推到1或2個地方。它工作得很好。但是該技術不支持從兩個方向提交提交。爲此,你必須支持合併,這也意味着你需要處理衝突。 – jszakmeister

+0

我希望能夠在沒有代碼審查的情況下將更改推送到存儲庫,並且我也不能保證我的團隊將成爲唯一在存儲庫中進行更改的人員,因此我們可能會將更改推送到兩個位置。 。phabricator怎麼樣?我已經使用了它一個月左右,與gerrit不同的是,您需要負責在代碼審查之後將更改推送到存儲庫,在這裏gerrit會爲您做。 –

+0

我對phabricator沒有太多的瞭解,但它似乎支持遠程存儲庫。 – jszakmeister

回答

2

Phabricator不需要存儲庫的主副本。許多安裝(包括Phabricator的元安裝)目前與GitHub一起使用,而GitHub不提供對主設備的訪問。

這是Phabricator在現在工作(不能用目前管理碩士),所以只要按照配置正常的安裝說明,尤其是唯一的模式:

http://www.phabricator.com/docs/phabricator/article/Diffusion_User_Guide.html

+0

我需要幫助phabricator。我已經在Ubuntu上安裝了它,但我無法理解如何安裝arc和其他實用程序來使用代碼審查。謝謝 – 2013-03-06 14:09:47

4

如果開發人員可能會將更改推送到遠程存儲庫,那麼Gerrit/Phabricator將不知道這些更改,因此沒有好的選擇。代碼審查在這一點上並不是真正有效的 - 開發人員可能推動審查的改變看起來非常有效,但實際上,這些更改是針對上游已刪除或重構的文件進行的。

我不是很熟悉Phabricator,但這裏有與格里特幾個選項可能工作:

  1. 你能在本地安裝遠程倉庫,這樣它看起來像一個本地文件系統格里特?這將是理想的解決方案 - Gerrit會推送到此存儲庫並捕獲任何合併問題,並將它們呈現給用戶。

  2. 您可以使用Gerrit的複製功能將合併的更改推送到遠程存儲庫。如果存在合併衝突,我不知道處理它們的好方法。

  3. 您可以爲Gerrit編寫一個鉤子以將合併的更改推送到遠程存儲庫。這比#2更靈活 - 你可以在鉤子郵件上合併衝突。

  4. 無論是解決方案2還是解決方案3,都需要一些方法讓Gerrit的存儲庫副本保持最新。推送給Gerrit的遠程存儲庫上的git鉤子(繞過審查)是最好的選擇。否則,我認爲你必須有一個腳本來調查遠程服務器的變化並將它們推送到Gerrit。

+0

這是非常有幫助的答案,謝謝!不過,看起來我會嘗試使用phabricator。 –

相關問題