1. 程式人生 > >【SVN】使用方式

【SVN】使用方式

今天我們聊一聊svn的該如何使用!~

我們都知道svn是一個版本控制工具,但是你真的會用它嗎?

 

概念

repository(原始碼庫):你們上交的程式碼都在這裡

checkout(提取):通過登入,你就可以從repository中提取程式碼了

commit(提交):你修改或是新增的檔案或程式碼通過commit提交到repository中

update(更新):同步別人更新的程式碼

以上四個概念是我們最常用到的,那麼它們和trunk等有什麼關係呢?

 

介紹

trunk(主幹):什麼是主幹,主幹就像是一棵樹的樹幹一樣,我們開發或是維護的都是它。

braches(分支):相對與主幹,就像樹枝相對於樹幹一樣,它是主幹儲存的一個節點,相當於遊戲中的副本,也是用來開發的。

tags(標記):主要用於專案開發中相對比較重要的版本,它和主幹分支的區別在於,它一般是隻讀狀態,不用於開發,相當於一個穩定系統版本的備份。

 

策略

關於程式碼管理的分支和釋出策略有兩種:

分支作為新功能開發,主幹作為穩定的釋出。

優點:

1. 能保證主幹上東西的穩定,是主幹隨時可用。

2. 大部分開發人員不會去動trunk,用分支的方式解決實際開發過程中的一些變更。

3. 可以隨時拿到已經發布的任意一個版本。

不足:

1.  開發的時候,持續的合併分支到主幹,操作麻煩,而且很難保證主幹的穩定性

2. 違背了SVN的初衷,把主幹當成了tag庫去用了

3. 多功能同時開發的時候,分支合併到主幹會出現衝突之類的問題,merge起來很費事費力

 

主幹作為新功能的開發主線,分支用作釋出。

優點:

1. 主幹作為開發主線,在保證自己程式碼的穩定性和不和其他開發人員衝突的前提下,開發人員可以隨時提交自己的程式碼。很大程度上提高了trunk的穩定性

2. 每次成功的整合之後,我們同時也可以對庫和繼承環境做tag操作,極大的發揮了tag庫的強大作用。

3. 只有在釋出新的版本的時候,才會做提取分支的操作,降低了誤差。

不足:

1. 如果系統版本有大的變更,trunk可能有被破壞的危險。

2. 需要時刻了解分支是否需要保留,以為下次釋出update等做準備。

 

其實我們番茄專案中,用的是第二種策略,它相對比較適合我們這種敏捷開發方式,寫程式碼之前update,寫完程式碼及時commit(保證程式碼無誤)。trunk為團隊開發的主線,釋出時提取分支,同時主幹開發第二版功能。

剛開始對SVN的使用還不是很瞭解,有點事倍功半的效果,所以我們在使用工具之前,首先要了解工具!