====== 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}}