1. 程式人生 > >SVN教程 -- 基於自己學習記錄

SVN教程 -- 基於自己學習記錄

pda name check view love nsh 添加 系統 get

SVN教程 -- 基於自己學習記錄

1. 概述

a. 什麽是SVN?

Apache Subversion 通常被縮寫成 SVN,是一個開放源代碼的版本控制系統。相較於 git ,svn 是集中式版本控制系統。

SVN官網鏈接

b. 什麽是集中式版本控制系統?

集中式版本控制系統可以這樣理解:所有的源代碼都放在統一的服務器上,開發者從服務器下載項目組的最新代碼,進入自己的分支進行開發工作,提交代碼,最後再把自己的分支合並到服務器主分支上,更新服務器源代碼。由於源代碼最後都是放在服務器上的,服務器統一集中管理,所以我們把這種操作模式叫做集中式管理。

2. 安裝

這裏以 Ubuntu 14.04.5 LTS 安裝 SVN 為例,使用下列命令安裝 SVN:

sudo apt-get install subversion

安裝完成後輸入:

svn –-version

出現下列信息即安裝成功。

技術分享圖片

3. 配置 SVN 服務器

安裝好 SVN 後,我們便可以進行相關操作了。

  1. /home/ubuntu/test 下創建一個 svn 文件夾。

    cd /home/ubuntu/test
    mkdir svn
  2. 在 svn 文件夾下創建一個 myCode文件夾倉庫。

    svnadmin create /home/ubuntu/test/svn/myCode

    創建完成後的目錄結構如圖所示:

技術分享圖片

  1. 創建完成後,我們需要配置一下 SVN。

    在 conf 文件夾下有三個文件:

    authz:用戶權限配置文件

    passwd:用戶密碼配置文件

    svnserve.conf:對 svn 訪問用戶的配置文件。

    a. 打開 svnserve.conf:

    vim svnserve.conf

    修改其中的內容如下(將註釋 # 去掉):

    anon-access = read       
    auth-access = write
    password-db = passed 
    authz-db = authz

    b. 修改 authz ,在最末行加入:

    [/]
    user = r
    user = rw

    多用戶時可以設置用戶組:

    在 [groups] 下面添加用戶組名和用戶名

    [groups]
    mygroup = admin, user, xxx
    readGroup = xxx

    設置用戶組讀寫權限:

    [/]
    @mygroup = rw
    @readGroup = r

    設置用戶組權限需要加@,單個用戶的時候不用加。

    c. 設置密碼,打開 passwd 文件,在 [users] 下面添加賬號和密碼:

    [user]
    admin = admin
    user = 123456
    xxx = xxx

    格式如下:

    用戶名 = 密碼
  2. 啟動 svn 服務器。

    svnserve -d -r /home/ubuntu/test/svn/myCode

    當回車後沒有返回結果時便說明啟動成功,如果顯示錯誤則需重新配置 svn。

4. SVN 項目的導入導出及使用

  1. 導入本地代碼到服務器。

    svn import /home/ubuntu/test/love_source svn://localhost/mycode/love_source --username=admin --password=admin -m "初始化導入"
  2. 從服務器下載代碼到本地,這裏就又是我的 Ubuntu 環境,你可以根據項目需要下載到不同的客戶端,只需將 localhost 改為 服務器的 ip 地址。

    svn checkout svn://localhost/mycode --username=admin --password=admin  /home/ubuntu/test/code
  3. 創建一個新文件夾並提交。

    mkdir branches
    svn add branches
    svn commit -m "new folder"
  4. 創建新分支。

    比如我們這裏的 love 文件夾是我們的主線,我們創建一個 love 的新分支並提交:

    svn copy love/ branches/my_branch
    svn commit -m "add my_branch"

    接著就可以切換到 my_branch 分支進行開發,比如這裏切換到新分支並創建 index.html 文件,將 index.html 加入版本控制並提交到版本庫中:

    cd branches/my_branch/
    vim index.html
    svn add index.html
    svn commit -m "add index.html"
  5. 合並分支。

    切回 love 主線,合並分支 my_branch:

    cd /home/ubuntu/test/code/love_source/love
    svn update
    svn merge ../branches/my_branch/

    svn update :將當前目錄及其子目錄下的所有文件都更新到最新版本。

    這裏可能會遇到 SVN MERGE: Unreadable path encountered; access denied , 這是因為打開了匿名獲取權限造成的,將 anon-access = none 就可以了。

    最後再將合並好的 love主線提交到版本庫中:

    svn commit -m "add index.html"

至此,我們便完成了 SVN 的認識,安裝配置,基本使用的操作步驟。

5. 參考鏈接:

  • <http://www.runoob.com/svn/svn-branch.html>
  • <https://baike.baidu.com/item/SVN>

6. 常用命令:

Linux公社有篇文章寫的很好,這裏給出鏈接,可以參考下:

<https://www.linuxidc.com/Linux/2011-09/42347.htm>

SVN教程 -- 基於自己學習記錄