Linux(CentOS)搭建SVN服務器

1.安裝命令安全

yum -y install subversion

查看SVN安裝位置bash

rpm -ql subversion

查看SVN版本服務器

svnserve --version

 

2.建立版本庫根目錄(此僅爲目錄,爲後面建立版本庫提供存放位置)tcp

mkdir /home/svn

 

3.建立SVN版本庫(建立項目)svn

svnadmin create /home/svn/project1
svnadmin create /home/svn/project2

建立成功後,進入project1目錄下spa

cd /home/svn/project1

進入目錄,能夠看見以下文件信息:日誌

 

建立版本庫公共配置文件存放目錄,隨便打開一個項目版本庫複製一份conf目錄(即:/home/svn/project1/conf)到 /home/svn 目錄下code

cp -r /home/svn/project1/conf /home/svn/conf

清空剛纔建立的項目版本庫conf目錄,刪除庫的全部配置文件blog

rm -f /home/svn/project1/conf/*
rm -f /home/svn/project2/conf/*

 

 

4.修改配置進程

進入conf目錄

cd /home/svn/conf

conf目錄下,一共存放三份重要的配置文件,以下:

authz:負責帳號權限的管理,控制帳號是否讀寫權限

passwd:負責帳號和密碼的用戶名單管理

svnserve.conf:svn服務器配置文件

編輯 authz 文件

@group1 = rw 中的"rw"意思是[groups]下定義的用戶對指定的版本庫有讀寫權限 

 

編輯 passwd 文件

 

編輯 svnserve.conf 文件(注意:配置的前面不能有空格,必定要頂格寫)

#配置匿名用戶不可讀(none匿名用戶不可讀寫)
anon-access = none
#受權用戶可寫 auth
-access = write #使用哪一個文件做爲帳號文件
password
-db = ../../conf/passwd #使用哪一個文件做爲權限文件
authz
-db = ../../conf/authz #認證空間名,版本庫所在目錄,該文件只爲了後面方便複製到每一個項目下的conf目錄下,每一個項目下的svnserv.conf中須要指明當前項目的目錄
realm
= /home/svn(後面單個項目中的svnserve.conf就須要設置如:realm = /home/svn/project1)

複製 svnserve.conf 配置文件到剛建立的全部項目版本庫的conf目錄下

cp -f /home/svn/conf/svnserve.conf /home/svn/project1/conf/svnserve.conf
cp -f /home/svn/conf/svnserve.conf /home/svn/project2/conf/svnserve.conf

修改/home/svn/project1/conf/svnserve.conf

realm = /home/svn/project1

修改/home/svn/project2/conf/svnserve.conf

realm = /home/svn/project2

注意:當SVN服務啓動時/home/svn/conf下的svnserve.conf文件並不會被版本庫載入,而真正被載入的配置是相對每一個project/conf裏的svnserve.conf文件,因此只是備份在當前目錄下爲了之後添加項目時方便複製到新的project/conf裏,可是全部項目版本庫conf目錄下的svnserve.conf文件中「realm」都是不同的!固然每一個project/conf裏的svnserve.conf文件都複製好並設置好「realm」後,/home/svn/conf下的svnserve.conf文件也能夠被刪掉。

 

5.自行配置好防火牆(默認3690端口)

雲服務器配置好安全組

CentOS7放開端口

firewall-cmd --permanent --add-port=3690/tcp

firewall-cmd --reload

 

6.啓動SVN服務器(注意:若是在一臺服務器上同時啓動多個版本管理,那麼啓動路徑必須是全部項目倉庫的根路徑)

svnserve -d -r /home/svn

也可再設置別的端口(默認端口3690)

svnserve --listen-port 3691 -d -r /home/svn

查看端口是否開啓

netstat -ntlp

查看進程號

ps -A | grep svn

關閉進程號

kill 進程號

查看SVN啓動結果

ps -ef | grep svnserve

 

7.訪問SVN服務器

Windows系統

svn://ip地址/project1

Linux系統

svn co svn://ip地址/project1

其餘命令

//查看目錄列表
svn list --username 帳號 [版本庫目錄]

//查看文件詳細信息
svn info --username 帳號 [版本庫目錄]

//查看日誌
svn log --username 帳號 [版本庫目錄]

//檢出版本庫
svn checkout --username 帳號 svn://ip地址/[目錄] [目標目錄]

//更新版本庫
svn update [版本庫目錄]

 

8.配置使用systemctl管理SVN(CentOS7)

建立/etc/systemd/system/svn.service文件

vi /etc/systemd/system/svn.service

並寫入內容

[Unit]
Description=Subversion Server
[Service]
Type=forking
ExecStart=/usr/bin/svnserve --daemon --root /home/svn
ExecStop=/usr/bin/killall svnserve
Restart=always
[Install]
WantedBy=default.target

其中,「/home/svn」是SVN倉庫的根路徑,請根據狀況修改。

 

通知systemd有個新服務添加

systemctl daemon-reload

啓動和中止SVN服務

systemctl start svn.service
systemctl stop svn.service

配置開機自動啓動

systemctl enable svn.service

檢查SVN服務運做狀態

systemctl status svn.service

查看是否開機啓動

systemctl is-enabled svn.service
相關文章
相關標籤/搜索