天天看點

linux svn切換分支,玩轉SVN-分支

導讀

Apache Subversion 通常被縮寫成 SVN,是一個開放源代碼的版本控制系統,Subversion 在 2000 年由 CollabNet Inc 開發,現在發展成為 Apache 軟體基金會的一個項目,同樣是一個豐富的開發者和使用者社群的一部分。

SVN相對于的RCS、CVS,采用了分支管理系統,它的設計目标就是取代CVS。網際網路上免費的版本控制服務多基于Subversion。

linux svn切換分支,玩轉SVN-分支

Branch 選項會給開發者建立出另外一條線路。當有人希望開發程序分開成兩條不同的線路時,這個選項會非常有用。

比如項目 demo 下有兩個小組,svn 下有一個 trunk 版。

由于客戶需求突然變化,導緻項目需要做較大改動,此時項目組決定由小組 1 繼續完成原來正進行到一半的工作(某個子產品),小組 2 進行新需求的開發。

那麼此時,我們就可以為小組2建立一個分支,分支其實就是 trunk 版(主幹線)的一個copy版,不過分支也是具有版本控制功能的,而且是和主幹線互相獨立的,當然,到最後我們可以通過(合并)功能,将分支合并到 trunk 上來,進而最後合并為一個項目。

我們在本地副本中建立一個 my_branch 分支。

[email protected]:~/svn/runoob01# ls

branches tags trunk

[email protected]:~/svn/runoob01# svn copy trunk/ branches/my_branch

A branches/my_branch

[email protected]:~/svn/runoob01#

檢視狀态:

[email protected]:~/svn/runoob01# svn status

A + branches/my_branch

A + branches/my_branch/HelloWorld.html

A + branches/my_branch/readme

送出新增的分支到版本庫。

[email protected]:~/svn/runoob01# svn commit -m "add my_branch"

Adding branches/my_branch

Replacing branches/my_branch/HelloWorld.html

Adding branches/my_branch/readme

Committed revision 9.

接着我們就到 my_branch 分支進行開發,切換到分支路徑并建立 index.html 檔案。

[email protected]:~/svn/runoob01# cd branches/my_branch/

[email protected]:~/svn/runoob01/branches/my_branch# ls

HelloWorld.html index.html readme

将 index.html 加入版本控制,并送出到版本庫中。

[email protected]:~/svn/runoob01/branches/my_branch# svn status

? index.html

[email protected]:~/svn/runoob01/branches/my_branch# svn add index.html

A index.html

[email protected]:~/svn/runoob01/branches/my_branch# svn commit -m "add index.html"

Adding index.html

Transmitting file data .

Committed revision 10.

切換到 trunk,執行 svn update,然後将 my_branch 分支合并到 trunk 中。

[email protected]:~/svn/runoob01/trunk# svn merge ../branches/my_branch/

--- Merging r10 into '.':

A index.html

--- Recording mergeinfo for merge of r10 into '.':

G .

此時檢視目錄,可以看到 trunk 中已經多了 my_branch 分支建立的 index.html 檔案。

[email protected]:~/svn/runoob01/trunk# ll

total 16

drwxr-xr-x 2 root root 4096 Nov 7 03:52 ./

drwxr-xr-x 6 root root 4096 Jul 21 19:19 ../

-rw-r--r-- 1 root root 36 Nov 7 02:23 HelloWorld.html

-rw-r--r-- 1 root root 0 Nov 7 03:52 index.html

-rw-r--r-- 1 root root 22 Nov 7 03:06 readme

将合并好的 trunk 送出到版本庫中。

[email protected]:~/svn/runoob01/trunk# svn commit -m "add index.html"

Adding index.html

Transmitting file data .

Committed revision 11.