SVN hook scripts如何debug
最近準備調整一些舊程式,於是在Subversion上新增四個版本庫(repository),並設定了post-commit這個hook。當commit程式時,自動做到以下動作
重新查看一遍所有設定,確認除了目錄不同,其他設定都一樣。增加了SVN的log來追查問題,看來hook也有執行。到底發生了什麼問題?真是令人百思不得其解。
最後,同事使用了一種語法去取得錯誤的資訊來debug,終於找到了問題。特別記錄一下…
他於hook中,使用 2>&1 。將shell script的執行結果,無論是成功、或失敗的訊息,都導向指定的log中。範例如下…
- 程式update到 /codepath 這目錄
- 將目錄 /codepath ,同步到另一台主機
重新查看一遍所有設定,確認除了目錄不同,其他設定都一樣。增加了SVN的log來追查問題,看來hook也有執行。到底發生了什麼問題?真是令人百思不得其解。
最後,同事使用了一種語法去取得錯誤的資訊來debug,終於找到了問題。特別記錄一下…
他於hook中,使用 2>&1 。將shell script的執行結果,無論是成功、或失敗的訊息,都導向指定的log中。範例如下…
看到錯誤的log,就知道問題所在。原來,有問題的那兩個版本庫,裡面含有中文檔名、或中文目錄名。這些檔案是採用big5編碼。因此,調整如下就恢復正常了。/usr/local/bin/svn update /codepath > /tmp/hook_test.log 2>&1 /path/synccode.sh
export LC_CTYPE="zh_TW.Big5" /usr/local/bin/svn update /codepath > /tmp/hook_test.log 2>&1 /path/synccode.sh
留言