官方文檔參考:https://cloud.tencent.com/dev...web
sudo apt-get install subversion
不少目錄能夠放subversion文件倉庫,最多見的是/usr/local/svn和/home/svnubuntu
sudo mkdir -p /home/svn/youshengyouse sudo svnadmin create /home/svn/youshengyouse //說明:先建立目錄(-p多級建立),再在該目錄下新建版本庫
svnserve -d -r /home/svn // svnserve不要寫成svnserver // -d表示以守護方式啓動 // -r表示倉庫的根目錄,這樣svn://ip地址/youshengyouse/就表示對應的倉庫路徑爲/home/svn/youshengyouse
先備份配置文件安全
ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp svnserve.conf svnserve.conf.bak20180907
/home/svn/youshengyouse/conf/svnserve.conf文件的內容以下bash
anon-access = read auth-access = write password-db = passwd authz-db = authz
/home/svn/youshengyouse/conf/passwd文件的內容以下
先備份buntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp passwd passwd.bak20180907
網絡
[users] aaaa=aaaamima bbbb=bbbbmima
/home/svn/youshengyouse/conf/authz(先備份)socket
[groups] develop = aaaa,bbbb manger = aaaa [/] @develop=rw *=r
修改後要重啓svn
svnserve -d -r /home/svn //若是報錯svnserve: E000098: Can't bind server socket: Address already in use 查下svn當前佔的端口 root@VM-0-14-ubuntu:~# ps -aux | grep svn root 16960 0.0 0.1 72492 940 ? Ss 14:29 0:00 svnserve -d -r /home/svn root 19765 0.0 0.0 13232 880 pts/5 S+ 15:20 0:00 grep --color=auto svn //kill進程 kill -9 16960 //再啓動 svnserve -d -r /home/svn
添加規則0.0.0.0/0 TCP:3690 容許 -
不然會拒絕svn訪問post
下載地址:https://osdn.net/projects/tor...測試
倉庫路徑爲 svn://ip地址/youshengyouse/
檢出(checkout)成功,新建一文件上傳,也成功,ok,萬里長征,完成60%網站
提交若是報錯
Can't connect to host '134.175.42.125': 因爲目標計算機積極拒絕,沒法鏈接。
緣由1:svn服務未啓動
line 1: Section header expected
緣由:通常是本個配置文件格工或哪裏多了空格之類的
can't open file db/txn-current-lock:permission denied
緣由:權限不夠
$ sudo chmod -R 777 /home/svn/youshengyouse
post-commit hook failed (exit code 255) with no output.
緣由: post-commit 腳本文件的權限不對,post-commit 腳本必須有 +x 權限。
sudo chmod 777 /home/svn/youshengyouse/hooks/post-commit
============如何讓svn代碼與web網站同步=========
只在svn提交就能夠,不要再向網站提交代碼
#!/bin/bash # 基本變量 export LANG=en_US.UTF-8 dateTime=`date +%F` dateTimeMinute=`date +%H%M%S` binSvn=/usr/bin/svn # 你svn命令的絕對路徑,若是不知道,請用find / -name svn查找 dirHtmlApp=/var/www/youshengyouse/ # 檢出的web站點根目錄 logFileName=/tmp/youshengyouse_svnhooks_${dateTime}.log # svn配置 # [1] REPOS-PATH 倉庫路徑 # [2] REV 剛執行修訂版本號 # [3] TXN-NAME (the name of the transaction that has become REV) REPOS="$1" REV="$2" # 檢出或者更新subversion,鉤子的核心功能 echo "-- $dateTimeMinute" >> $logFileName # 先要將svn倉庫中的內容檢出到網站對應的目錄中,如何判斷有沒有檢出過呢,就是看是否有文件夾.svn # 如是檢出過,就直接更新就行 if [ ! -d $dirHtmlApp/.svn ]; then # 檢出SVN echo "$binSvn co file://$REPOS/ $dirHtmlApp" >> $logFileName # 使用命令co檢出 $binSvn co file://$REPOS/ $dirHtmlApp if [ $? -eq 0 ]; then echo "checkout ok" >> $logFileName else echo "checkout error" >> $logFileName fi else # 更新svn echo " $binSvn up $REV $dirHtmlApp " >> $logFileName # 使用up命令更新 $binSvn up $REV $dirHtmlApp >> $logFileName if [ $? -eq 0 ]; then echo " update sucess " >> $logFileName else echo " update fial " >> $logFileName fi fi echo "--" >> $logFileName
建議先用測試下,檢出,上傳,刪除後,確認無誤後再進行批量操做