linux 下搭建svn 並且使用鉤子hook更新到指定目錄
第一,先下載
yum install subversion
會顯示是否安裝或者只下載,填寫Y就直接安裝
安裝成功之後建立一個檔案目錄放svn測試的
cd /home
mkdir svn
#這個是專門放svn裡的測試賬號資料夾
cd /home/svn
接下來就開始建立svn的配置了
svnadmin create /home/svn/demo
#這裡的svnadmin是他們svn的root許可權命令,是固定的
然後檢視ls看到demo裡就有他相關的檔案配置資訊檔案了
cd /home/svn/demo
ls
#裡面有conf db format hooks locks README.tex,這裡只用conf資料夾裡面的資訊和鉤子hooks
cd /home/svn/demo/conf
#進去conf資料夾就會看到有authz hook-env.tmpl passwd svnserve.conf
我們主要用這三個 authz(使用者許可權的配置檔案) passwd(建立使用者密碼的檔案) svnserve.conf(服務svnserve.conf配置)
第一先建立使用者密碼
vim passwd
#看到有[users],然後在下面建立使用者名稱密碼,也可以把他們預設的開啟,我這裡直接建立個使用者
[users]
xiaolu = xiaolu123 #xiaolu=>使用者名稱 xiaolu123=>密碼
然後esc 冒號 wq 儲存 退出
第二建立使用者許可權vim authz
#在最下面建立使用者許可權
點選檢視程式碼
[/] #這裡的/可能是後面開啟伺服器svnserve -d -r /home/svn/ 裡 (/home/svn/檔案儲存路徑)
xiaolu = rw #xiaolu是你建立使用者名稱在passwd裡面的 rw是可讀可寫
然後esc 冒號 wq 儲存 退出>
第三,修改服務配置資訊vim svnserve.conf
#在[general]下把下面註釋開啟 切記前面不要留空格
- anon-access = read
- auth-access = write
- password-db = passwd
- authz-db = authz
然後esc 冒號 wq 儲存 退出
接下來就是開啟伺服器了,先檢視是否開啟了,一般修改了svnserve.conf就得重啟svn服務,下面有幾個操作常用到
-
ps -ef|grep svn
#檢視svn服務是否啟動 -
svnserve -d -r /home/svn/ --listen-port=3690
啟動svn服務 -
kill -9 4910
程序 4910是你檢視ps -ef|grep svn
裡的id 在root後面,殺掉之後再重啟,一般這個是修改了svnserve.conf才使用
接下來就啟動svn了
svnserve -d -r /home/svn/
#這個/home/svn/就是你存放版本庫目錄比如我/home/svn/裡面有demo1,demo2,demo3的資料夾,啟動就是啟動這三個
啟動之後檢視有沒有開啟
ps -ef|grep svn
預設就是3690 有使用阿里雲的雲伺服器就得新增安全組還有新增防火牆
在命令版可以使用svn co svn://你的ip地址/[demo你的svn下面的檔案create的資料夾名稱]
輸入密碼測試連線是否成功就行了
現在就是開始用鉤子更新檔案到指定的檔案目錄
先去需要更新的的目錄,我的在/www/wwwroot/testsvn/cd /www/wwwroot/testsvn/
svn checkout svn://你的ip地址/[demo你的svn下面的檔案create的資料夾名稱] ./ --username [xiaolu使用者名稱]
#輸入密碼和Y確認就行
然後去你的demo檔案下面的hookscd /home/svn/demo/hooks
cp post-commit.tmpl post-commit
#複製一份post-commit
然後修改post-commit
點選檢視程式碼
export LANG=en_US.UTF-8
/usr/bin/svn update /www/wwwroot/testsvn/ --username xiaolu --password xiaolu123
然後esc 冒號 wq 儲存 退出就可以測試了