安裝了一下SVN伺服器,本文沒有與Apache整合,過程如下:
一,下載相關軟體:
[root@youxia201 test]# wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
[root@youxia201 test]# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz
二,安裝及配置:
1,解壓,要在同一個目錄下:
[root@youxia201 opt]# tar -zxvf subversion-1.6.1.tar.gz
[root@youxia201 opt]# tar -zxvf subversion-deps-1.6.1.tar.gz
2,編譯及安裝:
[root@youxia201 subversion-1.6.1]# ./configure --prefix=/usr/local/svn/
[root@youxia201 subversion-1.6.1]# make && make install
3,把svn相關的命令添加到環境變數中:
[root@youxia201 subversion-1.6.1]# echo "export PATH=$PATH:/usr/local/svn/bin/" >> /etc/profile
[root@youxia201 subversion-1.6.1]# source /etc/profile
三,建立測試倉庫:
1,建立SVN的根目錄,研發中心有多重專案部:
[root@youxia201 subversion-1.6.1]# mkdir -p /opt/svn/
2,建立一個測試倉庫:
[root@youxia201 subversion-1.6.1]# mkdir -p /opt/svn/svntest/
[root@youxia201 subversion-1.6.1]# svnadmin create /opt/svn/svntest/
3,修改設定檔:
[root@youxia201 svntest]# cd /opt/svn/svntest/conf/
[root@youxia201 conf]# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
[root@youxia201 conf]# vi authz
[svntest:/]
lipeng = rw
#給svntest倉庫添加一個名稱為李鵬的使用者,許可權為可寫。
[root@youxia201 conf]# vi passwd
lipeng = 123456
#由於是測試,密碼設定為123456
四,在Windows XP上安裝svn用戶端:
1,:
http://code.google.com/p/rails4scm/downloads/detail?name=tortoisewin32svn.msi
2,下載完成後,直接next安裝即可,安裝完成後需要重啟生效。
五,啟伺服器及測試:
1,啟SVN服務,並指定SVN的根目錄:
[root@youxia201 test]# svnserve -d -r /opt/svn/
2,服務已經正常起來:
[root@youxia201 test]# netstat -tunlp | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 8646/svnserve
3,測試:
在案頭上建立一個名稱為svntest的目錄,在此目錄上點擊右鍵,選擇Checkout,在首行填寫svn伺服器的IP地址及倉庫名稱
輸入相應的使用者名稱稱及密碼後就可以使用了
如何同步到web目錄?
同步前需要先用checkout命令把當前項目簽出到web目錄
svn checkout svn://localhost/default (進入web目錄後再執行)
為了可以在修改完代碼提交到SVN伺服器後,WEB伺服器直接同步處理.需要配置SVN的鉤子,開啟hooks目錄,
可以看到有一個post-commit.tmpl檔案,這是一個模板檔案,
複製一份放在此目錄下,命名為post-commit
裡面原有的代碼全部注釋掉.這裡可以執行shell命令,每次commit完成後都會調用此檔案.
我的檔案內容為
#!/bin/sh
export LANG=zh_CN.GBK
/usr/local/svn/bin/svn update --username lida --password lida svn://localhost/default /www/web/
說明:
#!/bin/sh 說明是執行shell命令
export LANG=zh_CN.GBK 是為瞭解決svn post commit
中文亂碼,設定本地化編碼,因為我的系統為GBK編碼,SVN預設是UTF-8編碼,如果不設定將會出現錯誤,而執行不成功,錯誤標識為svn:
Can't convert string from native encoding to 'UTF-8'
/usr/local/svn/bin/svn update --username lida --password lida svn://localhost/default /www/web/ 執行更新操作
如果提示:post-commit hook failed (exit code 255) with no output賦予post-commit檔案可執行許可權
如果您的預設編碼就是UTF-8的,要上傳中文檔案,先將檔案另存新檔UTF-8格式在提交
文章轉載自:http://chlotte.blog.51cto.com/318402/382700