2016-04-04 25 views
1

我們剛剛升級到最新版本的BitBucket,它允許我們禁用直接推送到主分支。現在我們使用Github Flow流程的一個版本(即從主分支中克隆功能分支),並且只能使用pull請求從feature/bugfix分支合併到主分支。 我們想在執行我們的測試(一些自動化的,一些手冊),同時仍然在功能分支上工作,並且在合併到主分支之前。我想用拉請求週期如下:用於特徵如何在功能分支上測試時使用Git pull請求

  1. 問題拉請求
  2. 拉動請求批准由團隊
  3. 測試功能
  4. 測試完成後,合併掌握

如果我們在測試之前先推送給主服務器,那麼這可能會導致在主服務器上引入錯誤和回退。

我的問題是這樣的:因爲總是有其他用戶可以使用其他請求合併到主服務器的可能性,這意味着我的請求請求可能必須重新發布到主服務器的更新狀態在拉開請求最初打開後已經過去了。這意味着要麼再次執行測試,要麼在至少有一個未完成的請求處於活動狀態時鎖定存儲庫。但鎖定存儲庫也有其問題,因爲沒有其他人能夠工作。

有沒有人遇到過這個問題?

感謝, 保羅

回答

0

是的,在合併掌握爭是使用功能分支任何一支球隊的問題。

團隊工作最快,如果他們可以獨立工作,不需要協調,所以鎖定通常不是一個好的解決方案。

通常的解決辦法是這樣的:

  1. 開發其特性分支
  2. 測試功能
  3. 調整基線對主人的特性分支的特徵(或合併主到功能分支)
  4. 如果發生重大合併衝突,請返回2.
  5. 將功能分支合併到主人
  6. 迴歸測試主

這個工作流程時效果最好的特點是小,測試速度快,所以

  • 自動化您的測試,就像你所能。這一努力將會得到回報。徹底的自動化驗收測試將同時適用於功能的預合併測試和主控的迴歸測試。

  • 規劃你的功能,以便它們可以開發和合併爲小塊主。在某種程度上,這可以通過查找部分更大的功能來完成,這些功能獨立有用,因此可以獨立部署並向用戶公開。否則,開發並部署該功能的各個部分,直到該功能完成才顯示給用戶,使用feature toggle來隱藏該功能的部分功能,否則該功能部件將以用戶可見的方式顯示,直至功能完成。

有時候仍然需要鎖定存儲庫,以便對非常大的更改進行鎖定,這些更改不能在片段中進行合併,例如框架升級。

相關問題