星期五, 6月 16, 2006

Install svn in Debian

就是subversion,這是第二次install了,稍微紀錄一下,免得又要再google一次

svn 需要apache2(如果要http:\\ protocol) 和subversion。所以要install..
#aptitude install apache2 subersion libapache2-svn
完成後,要config apache2,
如果已經config好的,就只要修改dav_svn 這個module的設定。
在 /etc/apache2/mode-enabled 下的 dav_svn.cof:

這個file 裡面已經有些說明,follow 說明把一些 # 拿掉就可以。

SVNPath 放repository 的位置,改成 /var/local/repos

使用 Basic 的 AuthType 。 注意下面 AuthUserFile 的path,待會要create user password file。

完成後...

svn 不能自己create reposity folder,所以要手動:
#mkdir -p /var/local/repos
#chown -R www-data:www-data /var/local/repos
然後就可以叫svn create databas..
#svnadmin  create /var/local/repos
接著... create access passwd : (剛剛AuthUseFile)
#htpasswd2 -c /etc/apache2/dav_svn.passwd charles
把"charles"加入可以commit的名單中..

重新啟動apache2,就可以開始svn的操作。

svn 的操作會在folder中create ".svn" 隱藏目錄。
----- 所以有些動作不用指定 host 名稱..svn會自動由 .svn 這個folder的資料決定動作方式。

checkout時,要指定 svn path和 project。並且checkout會複製出整個folder。

update, diff, log 都是針對local 與 svn server間的動作,所以都要在project folder中動作,
這樣svn 才能根據 folder中的 ".svn" 來動作。

也就是說,一旦checkout一個project後,只要每次在folder中值行:
svn update
就可以保持這個project在最update的狀態。
(但是一般sourceforge的svn server不會容許你這樣作....)

也就是說,一旦checkout後,其他動作就只要在folder中動作,不用再記 PATH了。



一旦checkout後,svn有一份原始檔案列表,每次update, commit都是針對這分列表的檔案動作,所以要是新增一個檔案,svn 並不會 紀錄進去 (想想 build後的目錄,裡面有一堆.o 和log...)。

要在 project中新增檔案,要用 "add" command
svn add newfile
這樣svn就會把newfile加入你的local .svn sourcelist中,之後你 commit後,newfile就會被update到repository。

同理,delete file也一樣,要用"del" command:
svn del junkfile
才會修改sourcelist。



svn 的help是
 svn help command
.

沒有留言:

張貼留言