2014-03-01 36 views
1

我們剛剛搬到了Git。 我們擁有數百萬用戶的實時產品。目前,我們從每個功能的主人處分支出來,當工作完成後,我們將其發佈到QA進行測試。一旦獲得批准,它將在現場進行A/B測試@ 10%,而PROD中的當前運行版本(10%也是)。 如果一切順利,我們發佈50%,然後100%。Git:A/B測試的DEV-QA-PROD循環的最佳實踐是什麼?

  1. 直到版本去花費幾天100%:

    的問題時開始。同時,我們研究了 的不同功能,它們都從主設備分支出來,所以當我們想要 發佈A/B測試的下一個版本時,基本版本是 不同(不包括最新版本的主設備)。 總是會在發佈到QA之前拉最新版本,但我們不希望 等待版本去100%,這需要時間,現在QA將有 再次測試所有內容,因爲它是不同版本。

  2. 如果我們決定從最新發布的分支,而不是從 主 - 有時是最新版本,可以拒絕或刪除 和我們要失去所有的最新版本,並承諾回去 原點。

我想在等待A/B測試結果時,這個週期有很好的做法,很想閱讀它們。

謝謝。

回答

1

在這個模式請看下圖:http://nvie.com/posts/a-successful-git-branching-model/

您正在尋找「發佈分支」 - 分支,它是在當時計劃去QA創建。這創造了沒有添加新功能的地方,只修復了錯誤。

我在我的項目上使用這個模式最近兩年,它工作得很好。

所有開發都在DEV分支 - 新功能是基於DEV的分支。當您決定發佈新版本的軟件時,您會將功能分支合併到DEV中,並創建新的分支以供發佈。這個發行版分支是bug修復的地方,開發在DEV分支上進行。

您可以定期將發佈分支合併到DEV分支,以將錯誤修正包括到開發版本中。當您決定發佈新版本時,將發佈分支合併到DEV以保留所有錯誤修正,並將發佈分支合併到主。

+0

是的,我看到這個模式,但仍然無法確定這可能對我有幫助。 假設我創建了DEV,release和feature分支。現在我已經完成了一項功能併發布到QA。在發佈批准之前,我已經創建了一個新分支,其中不包括髮布到QA的更改。只有當最新版本獲得批准並且100%進入PROD時,纔會在PROD中進行測試,因此它必須包含以前的版本。 這意味着所有已完成的QA工作都沒有意義。 謝謝。 – mrgoos

+0

回覆更新,希望這個更清楚。請接受答案。 – Kacer