好久沒有更新Blog了,看到還有人在關(guān)注這個Blog,很是慚愧。發(fā)現(xiàn)還是有人在使用Polarion的SVN Web Client,并且碰到了一些小問題,盡管我工作中幾乎不用這個客戶端,但當(dāng)初安裝的版本依然還在,所以決定稍微研究一下,但愿能給喜好這款軟件的人一些幫助。
1. 為什么老是提示“Your credentials are not correct. Please check them and try again. ”?這個多半是svn初學(xué)者常碰到的問題,尤其在使用HTTP協(xié)議的時候。一開始大家都用svnserve來做svn的服務(wù)器,自然配置的是conf中的passwd。但如果采用HTTP協(xié)議的話,就得使用Basci HTTP Authentication了,需要用Apache提供的htpasswd來管理用戶和口令。這個的配置在svn自帶的幫助文件中第6章“httpd, the Apache HTTP Server”一節(jié)中有比較詳細(xì)的解釋。但如果你沒有通篇看完,在Apache中沒有加上Require valid-user指令的話,那是允許匿名操作的。我想,你不愿意留下這樣的安全漏洞吧。
2. 怎樣配置多個repository
這個也是實際中需要的,當(dāng)然,在它的readme中其實是說得很清楚的。但我們有些同志就是喜歡拿來就試,尤其是在有些類似于我這種其實語焉不詳?shù)奈恼聲r,更是就喜歡照葫蘆畫瓢,而不去看最權(quán)威最原始的英文文檔了。要配置多個repository,以HTTP協(xié)議為例,在web.xml中要刪掉RepositoryUrl、Username、Password這3個參數(shù)的設(shè)置,然后加上ParentRepositoryDirectory參數(shù),值自然是指向svn倉庫的父目錄了,比如
http://localhost/svn/,這個東西又是哪里來的呢?自然需要在Apache中配置,用SVNParentPath來指定svn倉庫的父目錄,Apache會自動解析其下所有的倉庫的。這里要注意一下AuthzSVNAccessFile授權(quán)文件的寫法,這里將配置所有倉庫的存取權(quán)限,對于每個倉庫,需要用[倉庫名:/module]的方式來配置。
3. 怎樣使用svn協(xié)議
前面我一直用http協(xié)議做例子,實在是因為我在其2.5.0下沒有配置出來過svn協(xié)議:(。這次去其網(wǎng)站下載了個最新的nightly版本,發(fā)現(xiàn)其已經(jīng)能夠支持http, svn, svn+ssh, ssl和proxy等6種協(xié)議了。看看其代碼結(jié)構(gòu),好象也發(fā)生了很大的變化,估計應(yīng)該有比較大的改進(jìn)。于是,用這個版本試了一把,呵呵,輕而易舉就把svn協(xié)議給連通了,包括多倉庫的情況。并且其還改進(jìn)了原來設(shè)置父目錄地址時一定要在最后添加/的要求,估計原來在這個地方卡殼的朋友也不少吧:)。不過,新版本還是不支持中文文件名,看我以前的帖子自己改吧。
Important: 由于svn webclient采用的javasvn(現(xiàn)已更名為svnkit)版本較低,用svn協(xié)議在提交老的文件時會失敗,但添加新的文件時沒有問題,所以,大家就不要再嘗試svn協(xié)議了。如果不采用SVN協(xié)議,則其官方發(fā)布的版本就沒什么問題了,已經(jīng)有網(wǎng)友重新打包了一個解決了中文文件名的版本,到
這里下載。(Updated: 2007.1.20)