我們目前正在爲我們的項目使用StarTeam,許可即將到期。我們正在考慮轉向Team Foundation Server或類似的方式,但是推動(主要來自我和另一個人)轉向某種形式的分佈式版本控制。其中一個問題是,我們的變更經理希望能夠通過更改請求進行跟蹤和發佈(如StarTeam中所述),我不相信這可以通過Mercurial或Git開箱即用輕鬆完成(請如我錯了請糾正我)。從StarTeam遷移到分佈式源代碼管理
這是一個擁有數千個Java文件和PL/SQL包的15歲以上的產品,由5-6個開發小組維護,總共有30-40個開發人員。對我而言,這似乎會使分佈式存儲庫成爲「早期提交,經常提交」思維模式的噩夢。每個團隊都將在同一個存儲庫中完全不同的子系統上工作這一事實使得它在我的腦海中變得更加棘手。
我們對任何改變目前的StarTeam過程是這樣的:
- 鎖定的文件(S)你想工作,
- 會讓你的整個變化,並把它從一個副本回顧了網絡上開車,
- 入住(和解鎖)已更改的文件,希望有人沒有強行破鎖的,
- 希望你的變化是從別人的變化構建不破其他文件
就我個人而言,我認爲「鎖定」文件的想法是荒謬的。團隊之間應該有足夠的溝通,這樣你就不需要了。
有沒有人在這裏有類似大小項目的分佈式存儲庫的經驗?您能否就版本控制和/或變更管理解決方案提出任何建議?主要要求是系統能夠管理客戶發起的變更請求,並強制開發人員將他們的簽入鏈接到一個。
謝謝。
您將如何處理(例如)20項更改請求計劃投入生產的情況,但是在最後一分鐘決定應該撤銷一項?從我所看到的情況來看,您必須在合併之前恢復到修訂版本,然後合併它後面的所有情況。這似乎是一個很大的努力。使用我們現有的系統,我們不會發布與該CR相關的文件(假設它們不屬於另一個CR)。 – Samah
@Samah這真的取決於你所遵循的開發模式。我強烈建議,如果你真的考慮git,你可以考慮調整你的進程以利用它的特性(比如便宜的分支,邏輯提交)。作爲一個例子,對於bugfix版本,當我們計劃發佈時,我們創建了一個新版本分支。這些更改由各種來源(開發分支,主題分支)的發佈主管合併或挑選到此分支中。如果我們改變了主意,他可以在提交時恢復git,以退出或重新綁定並清除更改。 – djs
很好!我與Mercurial合作,當我與客戶交談時,他們經常要求「變更請求」。當我告訴他們Mercurial沒有這種想法時,他們會感到驚訝。像Git一樣,Mercurial是一個*重點*工具。它可以進行版本控制,並讓您可以定義工作流程。如果您願意,您可以根據更改請求來說明工作流程,但您不必這樣做。 –