最近有個需求,是要能透過一個簡單的網頁介面
把svn repos打包下載
首先先把 www-data 加入 svn user group 讓 php可以使用 svn
groupadd svn chgrp svn repos/ -Rchmod g+sw repos -R
再來就是單純的執行 svn export; tar 以後下載
不過在執行的時候中文檔名會有問題會出現錯誤訊息svn: Can’t convert string from ‘UTF-8’ to native encoding:
若使用 php 的 shell_exec 要寫在同一行
shell_exec(‘LANG=zhTW.utf8; svn export….’);
若分兩個函式執行會變成兩個不同的 thread
不過寫個 bash script 再讓 php 去執行應該會是比較好的方式。
最後,tar完下載後,由於windows平台下 rar 處理 big5 檔名會有問題
因此使用 convmv 這套來處理一下檔名編碼的問題
apt-get install convmv
最後再寫個 html 介面來處理一些選項和下載就可以了
bash 大概長這樣
#svnpackager [svnserver] [repos name]
rm -rf $2
rm $2.tar.gz
export LANG=zh_TW.utf8;
svn export –force svn://$1/$2
convmv -f UTF-8 -t BIG5 -r –notest $2
tar -zcvf $2.tar.gz $2
rm -rf $2
稍微紀錄一下