Ubuntu下安裝SVN版本控制服務

今天在Ubuntu環境下部署svn版本控制服務。

1、下載安裝

# apt-get install subversion

2、建立目錄

# mkdir /home/svn
# mkdir /home/svn/repository
# chmod -R 777 /home/svn/repository

3、建立倉庫

# svnadmin create /home/svn/repository

查看 repository 目錄:web

# cd /home/svn/repository
/home/svn/repository# ls -l
total 24
-rw-r--r-- 1 root root  246 Sep  2 14:13 README.txt
drwxr-xr-x 2 root root 4096 Sep  2 14:13 conf
drwxr-sr-x 6 root root 4096 Sep  2 14:13 db
-r--r--r-- 1 root root    2 Sep  2 14:13 format
drwxr-xr-x 2 root root 4096 Sep  2 14:13 hooks
drwxr-xr-x 2 root root 4096 Sep  2 14:13 locks

4、修改配置文件

進入配置文件:docker

root@docker:/home/svn/repository# cd conf
root@docker:/home/svn/repository/conf# ls -l
total 20
-rw-r--r-- 1 root root 1080 Sep  2 14:13 authz
-rw-r--r-- 1 root root  885 Sep  2 14:13 hooks-env.tmpl
-rw-r--r-- 1 root root  309 Sep  2 14:13 passwd
-rw-r--r-- 1 root root 4371 Sep  2 14:13 svnserve.conf

一、修改svnserve.conf

vim svnserve.conf

將如下參數去掉註釋:ubuntu

[general] 
  anon-access = none    #匿名訪問權限,默認read,none爲不容許訪問 
  auth-access = write   #認證用戶權限  
  password-db = passwd  #用戶信息存放文件,默認在版本庫/conf下面,也能夠絕對路徑指定文件位置 
  authz-db = authz

clipboard.png

二、修改passwd文件

vim passwd

添加用戶名和密碼,例如vim

corwien = corwien_123

三、修改authz文件

vim authz

在[group]下面加上:segmentfault

admin=corwien
[/]
@admin=rw

5、啓動svn服務

#  svnserve -d -r /home/svn

查看進程是否已經開啓:bash

# ps aux | grep svnserver
root       134  0.0  0.0  11460  1052 pts/1    S+   14:22   0:00 grep --color=auto svnserver

從上面看,進程已經開啓了。服務器

6、在客戶端測試

咱們搭建的svn服務地址爲:svn://ip/repositorysvn

注意默認端口是3690,要開放此端口。post

7、設置開機自啓

先查一下svnserve的位置測試

which svnserve

例如返回

/usr/bin/svnserve

記住這個,後面腳本須要
開始寫腳本

cd /etc/init.d
 vim svn.sh

打開後寫入

#!/bin/bash
/usr/bin/svnserve -d -r /home/svn

保存退出後給文件添加可執行權限

chmod +x /etc/init.d/svn.sh

打開 /etc/rc.d/rc.local , 在新行添加

etc/init.d/svn.sh

重啓系統,看看svn有沒有啓動

8、鉤子

進入項目svn找到hooks文件夾

root@docker:/home/svn/repository/hooks# ls -l
total 36
-rwxr-xr-x 1 root root 2634 Sep  2 14:13 post-commit.tmpl
-rwxr-xr-x 1 root root 2773 Sep  2 14:13 post-lock.tmpl
-rwxr-xr-x 1 root root 2994 Sep  2 14:13 post-revprop-change.tmpl
-rwxr-xr-x 1 root root 2605 Sep  2 14:13 post-unlock.tmpl
-rwxr-xr-x 1 root root 4038 Sep  2 14:13 pre-commit.tmpl
-rwxr-xr-x 1 root root 3621 Sep  2 14:13 pre-lock.tmpl
-rwxr-xr-x 1 root root 3469 Sep  2 14:13 pre-revprop-change.tmpl
-rwxr-xr-x 1 root root 3309 Sep  2 14:13 pre-unlock.tmpl
-rwxr-xr-x 1 root root 3754 Sep  2 14:13 start-commit.tmpl

svn的hooks模版功能介紹

start-commit 提交前觸發事務
pre-commit 提交完成前觸發事務
post-commit 提交完成時觸發事務
pro-revprop-change 版本屬性修改前觸發事務
post-revprop-change 版本屬性修改後觸發事務
post-lock 對文件進行加鎖操做以後執行該腳本

示例:

chmod 755 post-commit && vim post-commit
#!/bin/sh

# POST-COMMIT HOOK

REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
SVN=/usr/bin/svn #這裏配置的是svn安裝bin目錄下的svn文件
WEB=/var/www/myweb #要更新的目錄
$SVN update $WEB --username adm --password adm
chown -R www:www $WEB

進入/var/www/myweb 文件夾手動檢出一份svn版本庫下次更新svn版本就會自動更新到服務器


相關文章:

ubuntu下安裝svn
Ubuntu 14.04快速搭建SVN服務器及平常使用【轉】
SVN實踐筆記(理論概念)--版本控制

相關文章
相關標籤/搜索