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