====== SVN 比對與產生 Patch 工具(尚未完成) ====== 因為有多個 SVN repos 給不同階段使用, 所以就會出現比對差異的需求以及產生 Patch 的標準程序, 也因此在這裡整理測試實驗的紀錄資訊。 ===== 環境說明 ===== * svn 1 : 開發版本 /tmp/develop/ * svn 2 : 驗證版本 /tmp/rc1/ * svn 3 : 正式版本 /tmp/release/ ===== 比對工具 ===== svn_cmpdir.pl 31503 /tmp/develop/bgproc /tmp/rc1/bgproc > /tmp/diff_files.txt 產生 develop/bgproc 的 Revision 31503 與目前 rc1/bgproc 差異檔案清單, svn_cmpdir.pl 主要是執行 svn update / svn export / svn status 產生出來的結果 cd /tmp/develop/bgproc svn update -q cd /tmp/rc1/bgproc svn update -q find . -type f | sed "s#^.#rm -f $(pwd)#" | grep -v ".svn" | sh svn export -r 31503 -q --force /tmp/develop/bgproc . svn status /tmp/rc1/bgproc find . -type f | sed "s#^.#rm -f $(pwd)#" | grep -v ".svn" | sh svn update -q ===== 修改 svn 目標 repos 狀態 ===== svn_patch.pl 31503 /tmp/develop/bgproc /tmp/rc1/bgproc 主要針對 svn_cmpdir.pl 產生出來的結果內容依據第一位元 * ! : 增加 svn del * ? : 增加 svn add 然後執行 svn commit cd /tmp/develop/bgproc svn update -q cd /tmp/rc1/bgproc svn update -q find . -type f | sed "s#^.#rm -f $(pwd)#" | grep -v ".svn" | sh cp -a /tmp/rc1/bgproc /tmp/rc1/bgproc.bak svn export -r 31503 -q --force /tmp/develop/bgproc . svn status /tmp/rc1/bgproc | grep "! " | sed "s#^! #svn del #" | sh svn status /tmp/rc1/bgproc | grep "? " | sed "s#^? #svn add #" | sh {{tag>svn subversion patch draft}}