使用SVN,我正在考慮使用SVN導出命令將第一個版本(版本1.0)發佈到生產服務器。然後?如何升級?
升級的下一步是什麼?例如,如果我想釋放下一個將會是1.1的版本,應該怎麼做?在不刪除所有文件的情況下,是否有辦法從標籤升級?
使用SVN,我正在考慮使用SVN導出命令將第一個版本(版本1.0)發佈到生產服務器。然後?如何升級?
升級的下一步是什麼?例如,如果我想釋放下一個將會是1.1的版本,應該怎麼做?在不刪除所有文件的情況下,是否有辦法從標籤升級?
一般釋放步驟:
Create a Tag從主/測試分支。這是已發佈的代碼。沒有分支就不能修改。這是1.0版本。您在生產服務器上構建並部署此代碼。
在主分支(trunk)中繼續編碼版本1.1。在v1.1結束時,您將創建另一個標籤,它將成爲發佈版本1.1。等等。
理想情況下,每發佈一個標籤。如果有固定的版本必須轉到先前發佈的版本,那麼從該標籤(例如1.0)中(1)create a branch,(2)將問題修復到分支中,(3)從該分支中創建另一個標籤作爲發佈版本1.0.1
請注意,在整個過程中沒有文件被刪除。您只需創建新的分支,即您的代碼庫的cheap-copies。
更新
但後來我怎樣才能升級到標籤生產1.1嗎? SVN導出會覆蓋現有文件並刪除標籤1.1中刪除的文件嗎?這是我的擔心。
兩件事情
出口確實不從任何地方刪除任何文件。它下載一個乾淨的副本(沒有.svn和其他特定於SVN的東西)作爲參數提供給它的URL。看到這裏svn export
當creating a branch或標籤,你應該複製。而不是導出,然後是導入。最常見的發佈流程看起來像下圖:(對不起,可憐的藝術)
SVN倉庫各國時間
/---> Tag 1.0.1(release to prod)
/--- Branch 1.0.1 for spot-fixes----|
/ |
/---Tag 1.0 (released to prod) v (merge fixes) /---Tag 1.1 (released to prod)
Trunk ----->'------Development for v1.1----------------'----------------->'----Development for v1.2-->
沒有什麼東西是不斷刪除,您有標籤每次發佈。
聽起來像你想做一些持續的整合。
你可以掛鉤各種構建服務器以便與SVN服務器集成,這樣你可以迭代地發佈你的構建版本。
比使用導出手動更自動化。
看一看
http://www.thoughtworks-studios.com/go-agile-release-management/
或
http://www.jetbrains.com/teamcity/
有其他那裏還堆...
但後來我怎麼樣可以升級到1.1標籤中生產? SVN導出會覆蓋現有文件並刪除標籤1.1中刪除的文件嗎?這是我的擔心。 – CIF 2011-03-02 22:04:23
@WSM更新了答案 – Nishant 2011-03-03 04:53:43