一 建立倉庫,配置svn
在Linux系統(tǒng)中搭建svn服務(wù)所需要用到的軟件叫做subversion,可以通過yum來進行安裝,如圖

安裝好軟件后第一件事就是創(chuàng)建一個倉庫目錄
[root@server1 ~]# mkdir /svn
使用svn自帶命令建立倉庫
[root@server1 ~]# svnadmin create /svn
進入該倉庫,可以看到該目錄下生成了一些目錄和文件

其他文件暫且不用理會,只需要對以下幾個文件做編輯

編輯svnserve.conf主配置文件,對以下幾項修改如下
[general]
anon-access = none #取消匿名訪問
auth-access = write #授權(quán)用戶有可寫權(quán)限
password-db = passwd #指定用戶配置文件,后面會用到
authz-db = authz #指定權(quán)限配置文件,后面會用到
編輯passwd文件,建立svn客戶端用戶以及密碼,一行一個,這里建立了兩個用戶

編輯authz文件,指定SVN倉庫目錄,這[/]代表根目錄,以及每個用戶的權(quán)限,這里均為可讀可寫

啟動SVN服務(wù),-d表示后臺運行svn服務(wù),-r是指定svn目錄;然后執(zhí)行了netstat檢查端口,默認(rèn)監(jiān)聽在3690端口上

在Windows使用SVN服務(wù)的話,需要下載一個TortoiseSVN客戶端軟件,安裝好軟件后在本地電腦創(chuàng)建一個工作目錄,右鍵該目錄選擇checkout,checkout就是把SVN服務(wù)器上的文件下載到本地工作目錄內(nèi)的操作

在對話框里輸入SVN服務(wù)器的地址以及需要存放文件的目錄,然后點擊ok按鈕,之后會要求輸入用戶名密碼,這個時候就輸入在passwd里設(shè)置的信息即可


登錄成功后便可以在該工作目錄里進行編輯或創(chuàng)建文件,操作完成后對該目錄右鍵,選擇check commit提交,這個操作等于是上傳到SVN服務(wù)器

現(xiàn)在切換到Linux使用客戶端測試,使用Linux的SVN命令進行checkout操作,登錄后可以看到Windows上創(chuàng)建的文件已經(jīng)出現(xiàn)

svn checkout svn://192.168.36.100 /svnwork/ --username=tanglu --password=123456789
在Linux上創(chuàng)建一個文件后提交到SVN
[root@server1 svnwork]# svn add linux.txt #用add把新增的文件添加進去
A linux.txt
[root@server1 svnwork]# svn commit -m "linux test" #commit正式提交
Adding linux.txt
Transmitting file data .
Committed revision 2. #版本號發(fā)生了變化
二,設(shè)置鉤子
我們知道要把svn的內(nèi)容更新到web目錄需要手動的svn up,但是今天筆者教你自動更新web目錄的方法,我們要在svn版本庫中配置鉤子來實現(xiàn),就是創(chuàng)建一個post-commit的配置文件,對其進行簡單的配置,簡簡單單的四步就可以實現(xiàn)Linux下SVN自動更新web目錄配置。
第一步:建立你的web程序目錄
mkdir /var/www/html/test
進入/var/www/html/test目錄。
svn checkout svn://121.14.177.178:843/svntest 不重命名文件夾,直接在當(dāng)前目錄下檢出
svn checkout svn://121.14.177.178:843/svntest test 檢出文件并且重命名文件夾
第二步:在項目庫的 hooks/ 目錄下新建 post-commit 文件 【鉤子腳本】
添加腳本內(nèi)容如下:
!/bin/sh
SVN=/usr/bin/svn #這里配置的是svn安裝bin目錄下的svn文件
WEB=/var/www/html/test #要更新的目錄
$SVN update $WEB --username xxx --password xxx (此版本是linux下,windows下是.bat,寫法少有不同)
其中SVN=右邊改成 svn 命令位置
WEB=右邊改成你實際的web目錄
第三步:讓post-commit有執(zhí)行的權(quán)限 chmod 777 post-commit
第四步:這里就已經(jīng)完成了,第四步就是測試了。