我的開發團隊剛剛開始使用Mercurial,我們對以下幾點感到困惑:QA如何測試代碼並將其與mercurial中的穩定分支合併?
我們是一個php webdev團隊。
我們有3個開發人員。我們現在所做的大部分工作都是針對新產品的錯誤修正。還在做一些新的功能開發。
我們有2個QA人員。每個錯誤修復和功能都必須經過測試,然後才能上線。
到目前爲止,每個開發人員都有自己的存儲庫。我們有一個名爲WebDev的中央服務器,它有自己的回購。開發人員從WebDev中抽取,然後進行一些更改(即修復一個錯誤),並推送到Webdev。然後,QA測試人員將測試中央服務器上的代碼(以便在WebDev中對代碼進行測試),並且如果測試成功,他會將該代碼推送到我們的生產服務器。
這不能正常工作,因爲......當開發者-1(dev-1)修復了一個錯誤並推送到WebDev時會發生什麼。與此同時,dev-2修復了一個不同的bug,並推向WebDev。質量保證人員在那裏測試代碼,並批准第二個錯誤修復,但不是第一個。如果沒有第一套變更,他會如何推動第二套變更?我們似乎失去了版本控制系統的所有優點。
我已經閱讀了很多關於分支的知識,但我無法弄清楚如何爲我們做這個工作......我們是否爲每個bug修復和新功能創建了一個新的分支,並且只有在它被測試之後, QA將合併到WebDev的默認分支上?這是最好的方式,還是有我缺少的東西?
謝謝!
---- UPDATE ----
感謝所有到目前爲止回答的人。這裏是我現在所在的地方......我可以想到兩個解決方案。
1)dev-1修復了bug-101的bug。他從webdev中取出,合併並在本地進行提交。他把它設置在測試中。 QA直接從他的存儲庫中提取,並在本地進行測試。如果它通過,QA將從webdev - > merge - > push到webdev(如果它發生了很大的變化,可以在那裏再次查看以確保它沒問題)。所以我們一次只測試一件事情,WebDev只包含由測試人員在本地測試過的更改,並始終保持穩定。
2)爲一切創建分支。 dev-1創建分支「bugfix-101」,然後推送到webdev而不合並它。 QA可以測試分支代碼,如果它被批准,則將其與默認分支合併。我有四個關於這個方法的問題 - (a)是否可以將一個開放分支推送到遠程存儲庫? (b)如果QA合併並關閉webdev上的分支,下次我拉時,我的本地回購也會關閉併合並分支?和(c)你如何從分支代碼測試?當我在瀏覽器中運行Web應用程序時,如何從分支測試? (d)創建如此多的命名分支是否存在性能問題(假設其中大多數分支將很快關閉)?
再次感謝。
我認爲,在UPDATE aection問題將是一條正確的路新的問題 - 他們是分開的,與原來的 – 2011-12-22 06:01:41