centos6.5下svn服務器的簡單搭建與使用

  1. linux下搭建svn服務器的文章已經有很多了,這裏僅記下自己最近使用的一些實踐之談,原理先不深究,供日後查閱用。

  2. 安裝:yum install subversion -y,可用rpm -ql subversion查看svn的安裝目錄,默認在/usr/bin目錄下

  3. 創建版本庫:
    mkdir /path/to/repo
    svnadmin create /path/to/repo
    創建好後目錄下會有conf db format hooks locks README.txt這些個文件(夾),
    其中conf是配置文件信息關係到登錄賬號的問題,hooks是鉤子文件會在服務器端執行一些客戶端對應動作的響應事件

  1. 配置用戶/開發組信息
    修改conf/passwd,直接在後面追加 username = passwd的字符串明文,這裏的username是linux中存在的用戶名,
    QQ截圖20161016131753.png
    修改conf/svnserve.conf,註釋掉那幾行使之生效,
    anon-access,auth-access,passwd-db,realm,
    同時修改anon-access = none,
    這樣在客戶端纔可以有讀日誌文件的權限,方便查看不同版本的提交日誌信息,
    修改realm = /path/to/repo指定svn版本庫目錄。
    QQ截圖20161016131827.png

  2. 到這裏個人開發的一個簡單配置就完成了,這時候用svnserve -d -r /path/to/repo
    就可以啓動svn進程然後就可以使用客戶端來連接svn://ip:port/repo使用了,這裏默認的端口是3690,
    如果是想開多個svn版本庫到別的目錄,只需要重複以上步驟至啓動時指定不同的端口號即可,
    比如使用3691端口啓動一個新的svn版本庫:svnserve -d --listen-port 3691 -r /path/to/repo
    這樣在客戶端連接的時候url是svn://ip:3691/repo

  3. 開發組配置
    多user在同一個group開發代碼,每個user去生成一個svn的版本庫然後指向同一個代碼目錄這個是很繁瑣而不符合規範的,
    這個時候就用上了svn的成員組配置:
    QQ截圖20161016131855.png
    修改conf/authz文件,編輯:

    # 添加 開發用戶組groupName1
    [groups]
    groupName1= userName1[,userName2,userName3...]
    
    # 添加開發組對代碼目錄的讀寫權限
    [/path/to/repo]
    @groupName1 = rw
    

    這裏的userName1,userName2的用戶需是linux裏的存在的用戶,且對應的svn密碼已經在conf/passwd中指定。
    到這裏就配置好一個組成員的配置了,經測試是ok的.

  4. post-commit鉤子配置
    粗略的可以理解svn客戶端將修改信息以一定格式傳輸到服務端保存在固定格式的文件裏面,
    svn up的時候再將這些文件裏的信息生效到代碼目錄裏。
    我們有時候需要在服務端實時的看到代碼更新信息,這就用到了post-commit鉤子:
    在客戶端commit的時候觸發服務端到/path/to/repo執行svn up來更新文件,
    同時減少日誌文件的大小,防止服務端當機後的日誌損失。
    到svn版本庫配置信息目錄,
    cd hooks,
    cp post-commit.tmpl post-commit
    編輯post-commit:註釋掉最後一行,添加
    export LANG=en_US.UTF-8
    /usr/bin/svn update --force /path/to/repo

    到這裏hook鉤子就配置好了,重啓svn進程,即可看到客戶端commit後文件同步更新。
    以上就是svn在centos下的簡單使用實踐,應對日常的開發需求已經足夠。

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