2011-05-11 64 views
2

所以我使用Subversion作爲SCM來維護一個經典的ASP webapp。我們使用功能分支來處理具有依賴關係或更長期開發的更改。分支機構和共享開發者服務器?

我們爲Dev/QA使用共享網絡服務器,這就是我的問題所在。中央Dev服務器是trunk的工作副本,然後當我需要在功能分支上查看Dev的更改時,我合併他們到開發工作副本。到目前爲止這麼好,但我是否爲自己的不愉快感而努力?例如,今天一位分析師告訴我,我可以「刪除」我對某個功能所做的更改,然後將其合併到開發人員網站進行演示 - 這並不是因爲該功能被殺死,僅僅是因爲他沒有做到這一點,不需要再看到它了。我意識到我不能輕易做到這一點。我現在合併的更改只是在Dev工作副本上顯示爲本地修改,我不能輕易將其刪除(我必須手動恢復對受影響文件的更改,因爲完全恢復可能/會終止與其他特性)。

我越寫越多,我覺得我已經回答了我自己的問題。我是否需要更改分支策略 - 每個環境分支?或者我需要爲每個分支(dev.mysite.com:4801,dev.mysite.com:4802)設置一個單獨的「共享Dev」網站?或者,你幾乎可以處理這個問題?

回答

1

如果要刪除的功能完全和完全包含在一個特定的修訂版本中,在與您的幹線相關的任何分支上,您應該能夠在該幹線分支的工作副本上對該特定修訂版本進行反向合併。看看"svn merge"命令的選項。根據這個頁面,你應該能夠這樣發出命令:

SVN合併-c -Revision YourDevBranch YourWorkingCopy

這應該刪除一個版本的淵源致力於爲一個分支,從你的軀幹的工作拷貝。

但是,如果問題與僅在一個修訂中提交的幾個功能有關,即使在原始開發分支中,那麼我想唯一的選擇是手動刪除修改。

+0

好的你是對的,我可以反向合併所做的更改。我從來沒有使用過這種類型的合併。我認爲這在某種程度上驗證了這種方法? – 2011-05-16 16:56:11

+0

是的,這實際上是我的觀點:) – yms 2011-05-16 17:04:19