高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

Subversion之Post-Commit

最近用到Subversion來做版本控制,但常常commit完之後還得再把資料複製一份到www資料夾,實在不方便。查了一下資料發現,原來svn有一些hook可以用,例如可以在commit之前或之後做某些事情,這樣就可以讓開發人員commit之後,直接在web上就看到成果。

  • SVN Server環境是FreeBSD 6.3
  • repository放的位置:/home/svn/repository
  • 專案名稱:test
  • web資料夾:/www/test

在每個repository底下都有個hooks資料夾,裡面有好幾個寫好的template,光看名字大概就知道他們是要做什麼事的。這邊我只拿post-commit來用(其它的可參考Subversion Book)。

> cp post-commit.tmpl post-commit
> vi post-commit

我在裡面加了幾行update的語法:

#!/bin/sh
export LANG=zh_TW.UTF-8
/usr/local/bin/svn update –username myid –password mypw /www/test

加入第一行是因為有些非英文檔名的檔案在update的時候可能會出錯,其中myid跟mypw請代入自己的svn帳號密碼。另外,記得chmod +x,讓它變成可執行

最後,在web資料夾checkout一下test專案,大致上應該就可以運轉了。

Comments