svn使用教程(Mac、Linux)

1. 基礎知識

1) 版本庫佈局

版本庫一般的佈局結構爲trunk(主幹)、branches(分支)、tags(標籤)。

i. trunk主幹

trunk就是開發的主線,一般項目都是導入到主線來開發的。

ii. branches分支

branches一般是trunk某個版本的拷貝,如果你想在某一段時間單獨對某個功能進行開發,而不像和其它功能混在一起,這時候branches是一個很好用的方式。你不會想在trunk裏一直開發這個功能,不提交,直到開發完成吧。一般也會合並的trunk中的。

iii. tags標籤

tags是啥?標籤,顧名思義,就是某個版本的記錄啦,就好像看一本厚厚的,看到哪一頁了,做個記號,方便以後查閱。
迭代開發時,在某個版本發佈應用,爲了做個記錄,這時候打個tag很實用。發佈後,線上出現了一個bug,可以根據這個tag進行修復再發版本。

2. 使用

理解了主幹、分支、標籤的作用,下面說下svn的使用。我在項目中常用的功能一般是checkout、commit、update、分支管理、標籤管理、版本回退。

checkout

代碼檢出比較簡單,執行以下命令,$project_name表示項目名稱:
svn co svn://.../path $project_name
有時想檢出某個歷史版本,$version標識版本號:
svn co svn://.../path@$version $project_name

commit

提交代碼都會用,不多說:
svn ci -m "更新說明"
有時只想提交某個文件:
svn ci path_to_file -m "更新說明"

update

工作中儘量多的update,執行命令
svn update

分支

  • 增加分支
    增加一個分支,實際上就是把trunk複製到branches目錄下,起一個特定的名字,表示該分支的作用;
    svn copy svn://../trunk/project svn://../branches/project_buy -m "添加購買功能分支"
    之後就可以在該分支上單獨開發購買功能了,不會影響trunk的正常開發嘍。
  • 合併分支
    購買分支上的功能開發完畢了,要合併到trunk中;
    • 合併到trunk需要在trunk的分支下操作;
      svn merge -r r1:r2 svn://../branches/project_buy ./
      r1:r2表示從版本記錄r1和r2之間的變化合併到當前工作目錄中。
    • 然後提交
      svn ci -m "合併購買功能到主幹"
    • 刪除分支
      有時不需要某些分支了,刪掉
      svn delete svn://../branches/project_buy -m "刪除購買功能到主幹"

標籤

  • 標籤創建
    svn copy svn://../trunk/project svn://../tags/project_tag1 -m "創建標籤1"
  • 標籤刪除
    svn rm svn://../tags/project_tag1 -m "刪除標籤1"

版本回退

版本回退這個功能很實用,開發過程中難免思路問題,回退代碼。
- 沒有提交的代碼回退
svn revert svn://../path_to_file
- 已提交代碼回退
svn merge -r r2:r1 svn://../path_to_file merge_file
好面熟啊,這個怎麼跟分支合併差不多尼。本質上是一樣的啦。r2:r1從高版本到低版本可不就是回退了嘛。從低版本到高版本增加記錄,就是添加嘍。

其它一些基礎命令

  • 記錄查看log
    查看版本歷史記錄
    svn log | more
    按n進行下翻,按q退出
    查看版本歷史記錄,並看修改了哪些文件
    svn log -v | more
  • 查看文件變化diff
    本地文件和版本庫的變化
    svn diff path_to_file | more
    版本庫版本的變化
    svn diff -c r svn://../path_to_file | more

3. 結束語

掌握常用的這幾個svn命令足以對付大部分日常工作了,理解之後,日常svn的操作並不需要工具的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章