1. 程式人生 > 其它 >linux 下搭建svn 並且使用鉤子hook更新到指定目錄

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檔案下面的hooks
cd /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 儲存 退出就可以測試了