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