想要在svn commit時檢查某些副檔名不要進repository.

一種做法是在client端 ~/.Subversion/config 去啟動 Global-ignore,

但是這種做法要每個client端都配合, 就是一個mission impossible.

最後只好從Server端下手.

 

Server 端有預設的ignore list,

但是無法自由更改.

最終只能從hook script下手去攔截.

找了pre-開頭的script, 只有找到pre-commit最接近需求.

pre-commit 的 $1, $2分別是 REPOS_PATH 與 TXN

$REPOS_PATH是commit的目錄, 這個比較好理解

$TXN則是一個臨時產生的transaction number,

這個$TXN無法直接用cat, 只能用svnlook去一窺究竟.

語法很簡單, 就是

svn changed $REPOS_PATH -t $TXN

產生的ouptput 格式跟 client端用svn st一樣, 第一欄會有status....

--------------

M    file1.c

A    file2.cpp

--------------------

之後再用awk 跟 grep去撈出想要的file name即可.

arrow
arrow
    全站熱搜

    Orion 發表在 痞客邦 留言(0) 人氣()