最全!Linux服務器下安裝SVN,並添加SVN項目,自動更新項目文件到web目錄


注意版本,不同版本命令有點點的不同,遇到要查下命令使用格式
linux版本:
subversion版本:
 
 
 
一: yum 安裝 subversion 
  1. yum install subversion
 
二:運行以下命令查看SVN版本。
  1. svnserve --version
 
三:按以下步驟創建版本庫:(要刪除版本庫,直接用rm命令即可)
  1. 運行以下命令創建目錄。(這個目錄是所有SVN項目的總目錄,想放哪就在哪建,比如你可以放在/home/www/svn)
    1. mkdir /home/svn
  2. 依次運行以下命令創建版本庫。(以后每添加一個SVN項目,重復這步以下的步驟/如: svnadmin create /home/svn/newProjectName
    1. cd /home/svn
    2. svnadmin create /home/svn/testHTML
  3. 依次運行以下命令查看自動生成的版本庫文件。
    1. cd /home/svn/testHTML
    2. ll
Subversion目錄說明:
db目錄:所有版本控制的數據存放文件。
hooks目錄:放置hook腳本文件的目錄。
locks目錄:用來追蹤存取文件庫的客戶端。
format文件:是一個文本文件,里面只放了一個整數,表示當前文件庫配置的版本號。
conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、權限等)。
運行命令 cd conf/進入conf目錄(該SVN版本庫配置文件)。
返回結果如下:
authz:是權限控制文件。
passwd:是賬號密碼文件。
svnserve.conf:SVN服務配置文件。
按以下步驟設置賬號密碼:
  1. 運行 vi passwd
  2. 按 i 鍵進入編輯模式。
  3. 在 [users] 塊中添加用戶賬號和密碼,格式:賬號=密碼,比如示例中的suzhan = redhat(注意等號兩端要有一個空格)。
  4. 按  Esc 鍵退出編輯模式,並輸入  :wq 保存並退出。
按以下步驟設置權限:
  1. 運行 vi authz
  2. 按 i 鍵進入編輯模式。
  3. 在末尾添加如下代碼(其中,r表示讀,w表示寫):
    1. admin = suzhan,yonghuming
    2. [/]
    3. @admin = rw
  4. 按  Esc 鍵退出編輯模式,並輸入  :wq 保存並退出。
 
 
按以下步驟修改svnserve.conf文件。
  1. 運行命令 vi svnserve.conf
  2. 按 i 鍵進入編輯模式。
  3. 打開以下幾個注釋(注意每行不能以空格開始,等號兩端要有一個空格):
    1. anon-access = read #匿名用戶可讀,您也可以設置 anon-access = none,不允許匿名用戶訪問。設置為 none,可以使日志日期正常顯示
    2. auth-access = write #授權用戶可寫
    3. password-db = passwd #使用哪個文件作為賬號文件
    4. authz-db = authz #使用哪個文件作為權限文件
    5. realm = /home/svn/testHTML #認證空間名,版本庫所在目錄
  4. 按  Esc 鍵退出編輯模式,並輸入  :wq 保存並退出。
運行以下命令啟動SVN版本庫。 (啟動最外層的版本庫)
  1. 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,但僅僅只是改了名字,其它一樣
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM