在我們公司,我們使用Perforce進行源代碼管理和版本管理。目前我們使用以下「樹」實現功能分支:Perforce和功能分支
Hotfix01 - Hotfix branch
Hotfix02 - Hotfix branch
HotfixNN - Hotfix branch
Main (continuous trunk)
RC - Release Candidate branch (next release)
Working01 - Working branch, feature branch.
Working02 - Working branch, feature branch.
Working03 - Working branch, feature branch.
WorkingNN - Working branch, feature branch.
我們提前設置了分支。並不是說這真的很重要。 RC分支是功能分支。現在我們有50多個開發人員,分析師和QA團隊成員,他們單獨或作爲一個團隊在各種項目中工作,缺陷修復等等。當工作進入時,您會找到一個免費的分支(我們分別跟蹤),聲稱分支例如Working56),從RC到該分支做一個強制合併/同步(以確保它正是RC中的內容),做你的工作(代碼,同行評議,QA),同時不斷地將RC的任何改變合併到你的工作中分支(每天至少一次,也許更多的時候是根據需要),當你完成時,你將這些改變複製到RC。
這個工作,但它意味着我們有(在這個時候)300個工作分支來管理。我們希望以更加理智的方式實現功能分支,我們將使用分支映射來創建分支,並根據需要創建分支,然後將其合併回RC,然後我們希望它不再顯示在分支中永久的倉庫(至少,不是每個開發商)。基本上我們只想看到那些積極發展的分支作爲功能分支,隱藏我們完成的分支。
最佳做法是什麼?這可以通過使用分支或流的perforce來完成嗎?我們是否錯過了支持分支規範的東西?我們是否應該放心,讓數以萬計的特色分支堆積在RC的倉庫視圖中?我們現在做的方式是我們所希望的最好的方式嗎?
我們已經使用Perforce 10年了,這仍然是一個每天都在困擾着我們的問題。
目前尚不清楚多次開發多個開發人員在同一個功能部件上進行協作,但您可能會研究的一件事是Perforce DVCS功能。如果開發人員在他們自己的DVCS回購站中創建自己的分支機構,他們不會污染共享服務器,而分支機構只是暫時的。 –
在開發團隊中有很多個人和團隊合作的工作。我會使用這樣的期望,即任何工作單元可能需要至少3人(甚至只是一個bug修復 - 開發人員,同行評審,質量保證)才能被合併到任何父分支中。除此之外,任何規模的許多項目都有多個開發人員協作。 –