SVN Apache Subversion
SVN 倉庫目錄結(jié)構(gòu) Repository:
+-trunk
+-branches
+-tags
truck(主線):是用來做主方向開發(fā)的邦尊,新功能的開發(fā)應(yīng)放在主線中,當(dāng)模塊開發(fā)完成后链峭,需要修改又沾,就用 branch。
branch(分支):分支開發(fā)和主線開發(fā)是可以同時進(jìn)行的杖刷,也就是并行開發(fā),分支通常用于修復(fù) bug 時使用役听。
tag(標(biāo)記):用于標(biāo)記某個可用的版本表窘,可以標(biāo)記已經(jīng)上線發(fā)布的版本,也可以標(biāo)記正在測試的版本乐严,通常是只讀的。
假設(shè)要開發(fā)一個新項(xiàng)目 MyApp孽椰,開發(fā)周期如下:
- 在主線 trunk 上開發(fā)凛篙,測試通過,上線
新建目錄 1.0呛梆,提交到 SVN,并標(biāo)記為 tag纹腌。位置為 /tags/1.0/MyApp(即 1.0 版本)
繼續(xù)在主線 trunk 上開發(fā)下一階段的新需求滞磺,開發(fā)中...
突然發(fā)現(xiàn)了一個線上的 bug,需要緊急修復(fù)并上線
在 tags/1.0 下的 MyApp 打一個分支 branch涎劈。位置為 /branches/MyApp
打開分支 /branches/MyApp 中的代碼,修改代碼蛛枚,解決 bug,測試通過后扭吁,提交盲镶,上線
再將 branches/MyApp/ 打個 tag 到 1.0.1 目錄下。位置為 /tags/1.0.1/MyApp(即 1.0 的修復(fù)版本)
由于主線 trunk 也是同時開發(fā)徒河,因此需要將 branch 合并到 trunk 上,再將 trunk 合并到 branch 上
主線 trunk 繼續(xù)開發(fā)
Git 與 SVN 的對應(yīng)關(guān)系
| SVN | Git |
|---|---|---|
| trunk/ | master (refs/heads/master) |
| branches/ | refs/heads/ |
| tags/ | refs/tags/ |
引用:
SVN trunk(主線) branch(分支) tag(標(biāo)記) 用法詳解和詳細(xì)操作步驟
SVN 版本管理:兩種開發(fā)模式