linux服務器安裝svn超詳細介紹
#!/bin/sh REPOS=”$1″ REV=”$2″ export LANG=en_US.UTF-8 LOG_PATH=/tmp/svn.log echo `date “+%Y-%m-%d %H:%M:%S”` >> $LOG_PATH echo `whoami`,$REPOS,$REV >> $LOG_PATH /usr/bin/svn co svn://39.102.74.157/test /usr/share/nginx/html/svn/svnrepos/test/ /usr/bin/svn update /usr/share/nginx/html/svn/svnrepos/test/ -username shanzezhao –password 123456 chown -R 777 /usr/share/nginx/html/svn/svnrepos/test/子曰:「學而不思則罔,思而不學則殆」;

centos操作系統下安裝svn:
1.查詢是否安裝
rpm -qa subversion
如果想刪除svn運行
yum remove subversion
2.如果沒有使用則運行以下操作
yum -y install subversion
3.此命令會全自動安裝svn服務器相關服務和依賴,安裝完成會自動停止命令運行
若需查看svn安裝路徑,可以用以下命令:
rpm -ql subversion
4.創建版本庫目錄(此僅為目錄,為後面創建版本庫提供存放位置)
本人選擇在/usr/share/nginx/html/svn路徑下創建版本庫,當前處於根目錄下,一次性創建如下:
mkdir /usr/share/nginx/html/svn/svnrepos
5.創建svn版本庫
在上邊建立的路徑基礎上,創建版本庫,命令如下:
svnadmin create /usr/share/nginx/html/svn/svnrepos/test
(test為你預期的版本庫名稱,可自定義)
6.創建成功後,進入test目錄下
cd /usr/share/nginx/html/svn/svnrepos/test
7.進入目錄,可以看見如下文件信息:

8.修改配置
cd /usr/share/nginx/html/svn/svnrepos/test/conf
9. cd conf目錄下,一共存放三份重要的配置文件,如下:
authz:負責賬號權限的管理,控制賬號是否讀寫權限
passwd:負責賬號和密碼的用戶名單管理
svnserve.conf:svn服務器配置文件

10.修改這三個文件
vi authz

只需在末尾添加,無需在文件其他部分修改和添加任何東西,末尾內容如下:
[\]
賬號1 = rw
賬號1 = rw
#切記!如果先設置成這樣的[\]的話 服務器後邊svn提交更新的時候報錯 請修改成[/]就好了
rw表示賦予此賬號可讀寫的權限
11.修改passwd文件信息
vi passwd
賬號密碼文件無需做修改,也是直接將賬號和密碼信息追加到文件中即可,注意格式為:
賬號 = 密碼
例如:test= 123456
12.修改svnserve.conf(重要)

#authz-db = authz 如果此條去掉後,雖然svn服務器可以連接,但一直會提示「認證失敗」,注釋掉即可正常
realm = My First Repository去掉注釋即可,無需做任何修改
到此,配置已經全部完成,賬號信息已經添加成功
13.防火牆 關閉就可以 如需開啟防火牆的狀態按照一下操作
find / -name iptables

本人的是這個 你們可以搜一下你們的
usr/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT /etc/init.d/iptables save service iptables restart
14.啟動svn服務器
svnserve -d -r /usr/share/nginx/html/svn/svnrepos
啟動成功後,可用ps -aux查看服務啟動是否成功


15.自動更新部署 (搭建svn都不是僅僅為了把代碼存到倉庫,而是同步部署到對應的項目。)
在 /usr/share/nginx/html/svn/svnrepos/test/hooks目錄的 hooks 裏面有一堆tmpl,今天我們就說一下自動部署post-commit.tmpl,
tmpl文件是模版文件,我們要用post-commit需要手動複製對應tmpl裏面的內容到新的post-commit裏面。
cd /usr/share/nginx/html/svn/svnrepos/test/hooks
cp post-commit.tmpl post-commit
使用ftp軟件打開 剛剛新建的post-commit 文件,清空文件
16.修改post-commit文件
然後打開文件清空內容,修改為以下代碼:
#!/bin/sh #其中第一行意思是:用sh來解析這個腳本,因為各種shell的語法有細微的差別 REPOS="$1" REV="$2" export LANG=en_US.UTF-8 #第二行是編碼格式:這裡我使用的是UTF-8 有的是GBK格式會報錯!! LOG_PATH=/tmp/svn.log echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH echo `whoami`,$REPOS,$REV >> $LOG_PATH #這是一個操作日誌 可加可不加 /usr/bin/svn co svn://39.102.74.157/test /usr/share/nginx/html/svn/svnrepos/test/ /usr/bin/svn update /usr/share/nginx/html/svn/svnrepos/test/ --username test --password 123456
#最後一行/usr/bin/svn是svn的路徑,不是項目路徑,應該都是一樣的,後半句分別是用戶名、密碼、和項目路徑。--username這個比較坑了,前面其實是兩個減號,英文輸入法下的 chown -R 777 /usr/share/nginx/html/svn/svnrepos/test/
#!/bin/sh REPOS=”$1″ REV=”$2″ export LANG=en_US.UTF-8 LOG_PATH=/tmp/svn.log echo `date “+%Y-%m-%d %H:%M:%S”` >> $LOG_PATH echo `whoami`,$REPOS,$REV >> $LOG_PATH /usr/bin/svn co svn://39.102.74.157/test /usr/share/nginx/html/svn/svnrepos/test/ /usr/bin/svn update /usr/share/nginx/html/svn/svnrepos/test/ -username shanzezhao –password 123456 chown -R 777 /usr/share/nginx/html/svn/svnrepos/t



