注意版本,不同版本命令有點點的不同,遇到要查下命令使用格式
linux版本:

subversion版本:

一: yum 安裝 subversion
- yum install subversion
二:運行以下命令查看SVN版本。
- svnserve --version
三:按以下步驟創建版本庫:(要刪除版本庫,直接用rm命令即可)
- 運行以下命令創建目錄。(這個目錄是所有SVN項目的總目錄,想放哪就在哪建,比如你可以放在/home/www/svn)
- mkdir /home/svn
- 依次運行以下命令創建版本庫。(以后每添加一個SVN項目,重復這步以下的步驟/如: svnadmin create /home/svn/newProjectName)
- cd /home/svn
- svnadmin create /home/svn/testHTML
- 依次運行以下命令查看自動生成的版本庫文件。
- cd /home/svn/testHTML
- ll

Subversion目錄說明:db目錄:所有版本控制的數據存放文件。hooks目錄:放置hook腳本文件的目錄。locks目錄:用來追蹤存取文件庫的客戶端。format文件:是一個文本文件,里面只放了一個整數,表示當前文件庫配置的版本號。conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、權限等)。
運行命令
cd conf/進入conf目錄(該SVN版本庫配置文件)。
返回結果如下:
authz:是權限控制文件。
passwd:是賬號密碼文件。
svnserve.conf:SVN服務配置文件。
按以下步驟設置賬號密碼:
- 運行 vi passwd。
- 按 i 鍵進入編輯模式。
- 在 [users] 塊中添加用戶賬號和密碼,格式:賬號=密碼,比如示例中的suzhan = redhat(注意等號兩端要有一個空格)。
-
按 Esc 鍵退出編輯模式,並輸入 :wq 保存並退出。
- 運行 vi authz。
- 按 i 鍵進入編輯模式。
- 在末尾添加如下代碼(其中,r表示讀,w表示寫):
- admin = suzhan,yonghuming
- [/]
- @admin = rw
-
按 Esc 鍵退出編輯模式,並輸入 :wq 保存並退出。
按以下步驟修改svnserve.conf文件。
- 運行命令 vi svnserve.conf。
- 按 i 鍵進入編輯模式。
- 打開以下幾個注釋(注意每行不能以空格開始,等號兩端要有一個空格):
- anon-access = read #匿名用戶可讀,您也可以設置 anon-access = none,不允許匿名用戶訪問。設置為 none,可以使日志日期正常顯示
- auth-access = write #授權用戶可寫
- password-db = passwd #使用哪個文件作為賬號文件
- authz-db = authz #使用哪個文件作為權限文件
- realm = /home/svn/testHTML #認證空間名,版本庫所在目錄
-
按 Esc 鍵退出編輯模式,並輸入 :wq 保存並退出。
- svnserve -d -r /home/svn
運行命令
ps -ef |grep svn 查看SVN服務是否開啟。
如果返回結果如下圖所示,表示SVN服務已經開啟。

注意 :運行以下命令停止SVN命令。killall svnserve
(以后每添加一個SVN項目,重復第三步、iii以下的步驟/如:
svnadmin create /home/svn/newProjectNam
e
)
四、測試服務器:
//我們在web目錄測試(/home/www)
cd /home/www
svn co svn:
//localhost/testHTML
如果提示:Checked out revision 1.
表示checkout成功
我們添加新文件來測試是否提交成功
(下面的命令可能會隨着svn的版本不同而有不同,不能正常運行時,查看幫助文檔,svn -help,
使用“svn help <subcommand>” 顯示子命令的幫助信息。
使用“svn --version”查看程序的版本號和版本庫訪問模塊,或者
使用“svn --version --quiet”只查看程序的版本號。
)
cd /home/www/testHTML
touch index
.php
svn
add
index
.php
//成功的話會顯示 A index
.php
svn commit -m
"測試提交文件"

五、本地SVN拉取文件

六、
實現svn更新自動同步到web目錄:(這一步要特別注意,網上很多教程並沒有說明,都是抄來抄去,導致錯誤很多。)
進入/home/svn/testHTML/hooks下,建立post-commit文件:
具體看以下中文注釋 ,在用vi編輯時,要去掉這些中文注釋
#!/bin/bash
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
//這里設置字符格式
SVN_PATH=/usr/bin/svn //這里是SVN安裝的目錄,一般都是這個,如果沒改過,查看svn安裝目錄命令:whereis svn
WEB_PATH=/home/www/testSVN1 //這個是項目運行目錄,也就是你的網站的目錄
SVN_USER=admin //這里是網上教程基本都報錯的原因,這個用戶名可以隨意,但一定要在這個項目版本庫的authz、和passwd中添加進去,也就是上面的第三步中的設置賬號密碼權限。不然會報各種錯。
SVN_PASS=admin
LOG_PATH=/tmp/svn.log //這個是日志目錄
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
//寫入日志的內容
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH

給post-commit 執行權限:
chmod 777 post-
commit
七、然后在PC 端,就可以用SVN客戶端使用了
svn地址跟前面設置的目錄一致。由於后面用不同電腦寫的教程 ,所以文件名由上面的testHTML變成了testSVN1,但僅僅只是改了名字,其它一樣
