http://www.tkk7.com/sean/archive/2006/12/15/87874.html
上一篇提到NAnt 0.85的兩個(gè)bug,經(jīng)過(guò)一番折騰,發(fā)現(xiàn)問(wèn)題其實(shí)出在它bundle的sharpcvslib(scvs.exe),我的解決步驟如下:
1- 安裝CVSNT,并在編譯腳本加入
<property?name="sourcecontrol.usesharpcvslib"?value="false"/>
讓NAnt不要使用那個(gè)bundle的sharpcvslib(scvs.exe),而是使用CVSNT的cvs.exe;
2- 去掉先前由NAnt建議的<cvs-pass>這個(gè)Task,以及<cvs-checkout>中的passfile屬性;
3- 指定cvsroot中直接包含密碼,格式
:pserver:username:password:@xxx.xxx.xxx.xxx:/your/cvs/path
前面提到的文件編碼以及用戶密碼驗(yàn)證等問(wèn)題均不復(fù)存在。
以下談一談我的觀感:
.NET的開源項(xiàng)目,就NAnt和sharpcvslib來(lái)說(shuō),不論是代碼質(zhì)量、文檔、社區(qū)活躍程度、更新/反饋周期,都還有很大的改進(jìn)和提高的空間,從實(shí)際效果來(lái)看,感覺(jué).NET部分開源項(xiàng)目的定位和初衷也很值得思考,究竟一個(gè).NET開源項(xiàng)目的存在更多的是要證明.NET/C#也可以做到xxxx,還是要解決實(shí)際問(wèn)題?這背后的價(jià)值觀到底是什么?
如果是解決實(shí)際問(wèn)題,那么為什么有現(xiàn)成的Win32環(huán)境下成熟的、完整的CVSNT可用,卻一定要自己搞一套cvs庫(kù),而且還要默認(rèn)使用這個(gè)相較而言頗為不成熟的庫(kù)?如果你跟我說(shuō)這樣是需要對(duì)CVS訪問(wèn)有更精細(xì)的控制,那我想還不如在CVS的命令行參數(shù)上多下些功夫來(lái)得實(shí)際。
其實(shí)CVS已經(jīng)存在很久,對(duì)于基本的協(xié)議、標(biāo)準(zhǔn),現(xiàn)有的不少CVS客戶端都實(shí)現(xiàn)的比較到位,sharpcvslib不知何故進(jìn)展如此緩慢,官方站點(diǎn)
sharpcvslib.sourceforge.net最后更新時(shí)間是今年2月,上一個(gè)發(fā)布版本0.35是2004年,開發(fā)版本0.36是2005年1
月,NAnt也好不到哪里去,0.85的RC1版本2004年11月就出來(lái)了,正式的0.85到今年10月才放出,如果你看看它的bug database,很多bug都石沉大海。
這個(gè)版本的NAnt在使用中的一些細(xì)節(jié)的處理個(gè)人感覺(jué)也有些欠缺的地方:比如:使用<cvs-checkout>,password屬性被deprecated,直接就不支持了,沒(méi)辦法,“官方”建議使用<cvs-pass>那我們就用吧,但是<cvs-pass>和<cvs-checkout>就目前看來(lái),配合的并不默契(詳見
上一篇隨筆和
bug ID 1616136)。
相比之下,生活在Java以及GNU/Linux/BSD下的朋友們,在上述這些方面就要幸運(yùn)的多。