2011-01-11 61 views
2

我們討論瞭如何部署到UAT關閉的產品修訂版,但未修改UAT未關閉狀態。部署版本的源控制問題

我們正在使用SVN,我們發現我們無法在沒有對相同文件進行預先修訂的情況下進行修訂。

讓我來解釋一下這個例子: 我們有3個版本的同一文件進行:

R1:UAT關閉(準備部署) R2:UAT未閉(未準備好) R3:UAT關閉(準備部署)

現在我只想部署UAT關閉的更改(例如r1和r3)。 在SVN中,這是不可能的,因爲r3也包含r2的變化..

你如何使這個工作?也許分支?或者只是採取r1並等到r2 UAT關閉?

感謝

回答

3

根據你說的話,我建議分支每個UAT問題,然後把它們合併到主幹時,UAT被關閉。

這樣,你必須:

Main Branch 
- Branch R1 
- Branch R2 
- Branch R3 

分行1,2和3都開始在同一時間,但R1和R3 UAT關閉之前R2是,並作出決定去與你擁有的一起生活。

因此,您可以將R1和R3合併到Main中,但將R2保留在原來的位置。

如果你是,雖然在這個過程中去,我也建議:

Main Branch 
- Staging Branch 
- - Branch R1 
- - Branch R2 
- - Branch R3 

然後,您可以合併您的功能分支到臨時分支,併合併到現場之前執行額外的有集成測試。這可以幫助解決兩個功能分支合併在一起時可能彈出的任何衝突問題。

另一件需要記住跨多個開發人員和多個版本的分支是要找到某種方式來跟蹤哪些分支上發生了哪些更改以及哪些分支已合併到哪裏。儘管如此,這完全取決於你的工作環境和實踐。

+0

你如何解釋以下幾點:A)他們可能不會使用穩定的主幹方法,而是不穩定的主幹,其中只有在需要發佈時纔會創建分支。 B)如果R3中的變化取決於R2中的變化怎麼辦? – jgifford25 2011-01-11 16:15:01

2

我幾乎總是建議爲每個版本分支。完成此操作通常取決於單個站點,但通常在發佈用於UAT測試之前。這使您可以移除尚未準備好用於最終版本的更改。

因此,創建一個發佈分支,你可以把你所有的UAT變化放在那裏。您可以從R1分支,然後合併R3中的更改或R3中的分支,並使用svn merge(參見Subversion在線手冊中的Undoing Changes)取消更改R2。

現在,您可以添加和減去用於版本的更改,而不會干擾當前項目。如果R2確實在以後獲得發佈批准,則可以將其合併回發佈分支。

我不建議你爲每個UAT事件創建一個單獨的分支。你最終得到的是很多分支和大量的合併。您最終會逐個測試每個更改並批准它們,然後再發現它們會相互干擾。