<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    京山游俠

    專注技術(shù),拒絕扯淡
    posts - 50, comments - 868, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    我的上一篇隨筆講了怎么使用Subversion客戶端去連接服務(wù)器,由于服務(wù)器是別人的,我們只能體驗(yàn)到有限的功能。要探索版本控制的方方面面,非得自己建立Subversion服務(wù)器不可。在這一篇中,我將構(gòu)建一個(gè)自己的源代碼倉(cāng)庫(kù)。

    首先是規(guī)劃,我覺得應(yīng)該從以下幾個(gè)方面來考慮問題:

    1、源代碼倉(cāng)庫(kù)放在什么地方?

    2、怎么將版本庫(kù)發(fā)布到網(wǎng)絡(luò)上?

    3、設(shè)置什么樣的認(rèn)證和授權(quán)策略?

    先來看第一個(gè)問題。我認(rèn)為,一個(gè)開發(fā)團(tuán)隊(duì)?wèi)?yīng)該使用一臺(tái)單獨(dú)的服務(wù)器來存放版本庫(kù),而這臺(tái)服務(wù)器的操作系統(tǒng),我推薦是Unix/Linux。原因很簡(jiǎn)單,因?yàn)榇蠖鄶?shù)的Unix/Linux系統(tǒng)都自帶有Subversion軟件,而且Unix/Linux系統(tǒng)都有很好的安全性。

    我使用的是紅旗桌面6.0,才推出沒多久,號(hào)稱內(nèi)核和所有自帶的軟件包都是最新的,我推薦大家使用。當(dāng)然,這個(gè)系統(tǒng)也不是完美無缺的,畢竟國(guó)產(chǎn)的東西常遭詬病,我選擇它的原因主要還是字體比較清晰。紅旗桌面6.0自帶的Subversion軟件為1.4.2。先給大家看一個(gè)截圖:
    01.PNG

    在Linux系統(tǒng)中,我建立了一個(gè)目錄/var/svnroot作為版本庫(kù)的存放目錄,然后使用svnadmin命令來創(chuàng)建了一個(gè)版本庫(kù)。svnadmin和svnlook都是服務(wù)器端的工具,他們可以直接操作版本庫(kù)服務(wù)器上的目錄和文件,而不需要Subversion服務(wù)器運(yùn)行。進(jìn)入到剛才創(chuàng)建的版本庫(kù)目錄/var/svnroot/jproject中,可以看到里面的目錄結(jié)構(gòu),如上圖所示。其中的conf目錄為存放配置文件的地方,等會(huì)設(shè)置認(rèn)證和授權(quán)策略的時(shí)候會(huì)用到。

    再來看第二個(gè)問題。只有把版本庫(kù)發(fā)布到網(wǎng)絡(luò)上,才能夠讓別的機(jī)器訪問得到,毫無疑問需要使用一個(gè)服務(wù)器端的守護(hù)程序。在網(wǎng)上找一下資料,發(fā)現(xiàn)大部分講Subversion服務(wù)器配置的文章都是使用的httpd服務(wù)器搭配mod_dav和mod_dav_svn模塊來提供Subversion服務(wù),我想可能是因?yàn)閔ttp協(xié)議更適合于廣域網(wǎng)的環(huán)境吧。使用httpd配置比較復(fù)雜,如果只是在局域網(wǎng)內(nèi)做開發(fā),使用Subversion自帶的svnserve也是不錯(cuò)的選擇。

    運(yùn)行svnserve命令,帶-d選項(xiàng)即可以作為一個(gè)單獨(dú)的守護(hù)進(jìn)程運(yùn)行,-r選項(xiàng)可以指定發(fā)布哪個(gè)目錄下的版本庫(kù)。一旦服務(wù)器運(yùn)行,就在端口3690進(jìn)行監(jiān)聽。使用telnet可以測(cè)試到3690端口已經(jīng)開放了,如下圖:
    02.PNG

    這時(shí),就可以在客戶機(jī)上使用svn://192.168.1.3/jproject來連接Subversion服務(wù)器了。

    最后看第三個(gè)問題。svnserve服務(wù)器運(yùn)行后,當(dāng)用戶請(qǐng)求訪問某個(gè)版本庫(kù)的時(shí)候,svnserve會(huì)先讀取版本庫(kù)目錄下的conf目錄中的svnserve.conf文件,然后根據(jù)這個(gè)文件中的設(shè)置來決定認(rèn)證和授權(quán)策略。

    我的認(rèn)證和授權(quán)策略很簡(jiǎn)單,認(rèn)證就使用簡(jiǎn)單的用戶名和密碼機(jī)制,授權(quán)策略為經(jīng)過認(rèn)證的用戶可以讀些版本庫(kù)、匿名用戶只能讀不能寫。因此,這個(gè)配置文件很簡(jiǎn)單,如下:
    03.png

    在這個(gè)配置文件中,設(shè)置了保存用戶名和密碼的文件為passwd,再編輯該文件,添加兩個(gè)用戶,如下圖:
    04.png


    OK,現(xiàn)在svnserve的設(shè)置已經(jīng)基本完成,下面使用Eclipse來測(cè)試一下。在Eclipse中建立一個(gè)HelloWorld項(xiàng)目,在項(xiàng)目上點(diǎn)右鍵,在彈出菜單中選擇小組-〉共享項(xiàng)目,然后依照提示一步一步進(jìn)行即可,如下列圖片所示:
    05.png

    06.PNG

    07.PNG

    08.PNG

    09.PNG

    10.PNG

    11.PNG

    12.PNG

    點(diǎn)擊確定,HelloWorld項(xiàng)目就全部被提交到Subversion版本庫(kù)中了,從下圖中可以看出,加入到版本庫(kù)中的項(xiàng)目前面的圖標(biāo)都有所改變,只要鼠標(biāo)懸停到文件上面,就會(huì)顯示更改的時(shí)間和用戶,真的是非常方便。
    13.png

    最后要說的是,svnserve提供的授權(quán)機(jī)制比較簡(jiǎn)單,對(duì)于一個(gè)用戶,要么能夠訪問整個(gè)版本庫(kù),要么就什么也不能訪問,如果要指定某個(gè)用戶只能訪問某些文件夾而不能訪問另外的文件夾是不可能的。要想實(shí)現(xiàn)這樣的功能,只有使用httpd。這大概也是httpd作為Subversion服務(wù)器主流的原因之一吧。


    評(píng)論

    # re: 使用Subversion進(jìn)行源代碼管理(二):創(chuàng)建和發(fā)布版本庫(kù)  回復(fù)  更多評(píng)論   

    2007-10-23 19:17 by tangfl
    最新的 svn 已經(jīng)可以做到目錄級(jí)別的權(quán)限控制了,但還是做不到單個(gè)文件級(jí)別。
    寫博客之前,尤其是寫這樣的教程類的文章前,應(yīng)該自己先確認(rèn)一下的。

    # re: 使用Subversion進(jìn)行源代碼管理(二):創(chuàng)建和發(fā)布版本庫(kù)  回復(fù)  更多評(píng)論   

    2007-10-25 14:30 by 海邊沫沫
    @tangfl
    多謝指正。

    Subversion 從1.3版之后,svnserve也提供了目錄級(jí)別的訪問控制,其配置方法為先編輯conf/svnserve.conf文件,添加一行:
    authz-db = authz

    這一行的意思是指將目錄級(jí)別訪問控制的配置放在了authz文件中,authz文件的配置格式如下:

    # re: 使用Subversion進(jìn)行源代碼管理(二):創(chuàng)建和發(fā)布版本庫(kù)  回復(fù)  更多評(píng)論   

    2007-11-01 17:58 by 海邊沫沫
    具體的配置方法,這里有一篇文章
    http://m.tkk7.com/apple0668/archive/2007/10/30/157060.html

    # 如何使得SVN支持HTTP協(xié)議  回復(fù)  更多評(píng)論   

    2008-02-14 11:24 by brofe
    我現(xiàn)在在體驗(yàn)SVN實(shí)現(xiàn)版本管理。

    只弄好了svnserve的服務(wù),只支持svn的協(xié)議訪問。

    而我想在Tomcat中部署svnwebclient,但是svnserve是不支持的http協(xié)議的。

    所以還請(qǐng)教教我這個(gè)新手,本人感激不盡。

    可將幫助發(fā)于我的Email: brofe@163.com

    # re: 使用Subversion進(jìn)行源代碼管理(二):創(chuàng)建和發(fā)布版本庫(kù)  回復(fù)  更多評(píng)論   

    2008-02-14 17:02 by 海邊沫沫
    @brofe

    通過httpd服務(wù)器搭載SVN模塊,就可以支持HTTP協(xié)議訪問了。
    你到網(wǎng)上一搜,到處都是的。

    # re: 使用Subversion進(jìn)行源代碼管理(二):創(chuàng)建和發(fā)布版本庫(kù)  回復(fù)  更多評(píng)論   

    2008-03-11 02:47 by husw
    夠詳細(xì),第一次這么系統(tǒng)的認(rèn)識(shí)SVN

    # re: 使用Subversion進(jìn)行源代碼管理(二):創(chuàng)建和發(fā)布版本庫(kù)  回復(fù)  更多評(píng)論   

    2008-03-11 02:47 by husw
    非常感謝!
    主站蜘蛛池模板: 免费A级毛片无码A∨男男| 精品久久久久成人码免费动漫| 国产成人精品123区免费视频| 亚洲伊人久久精品| 2021精品国产品免费观看| 亚洲网址在线观看你懂的| 日韩免费高清播放器| 国产AV无码专区亚洲AWWW | 亚洲另类春色国产精品| 最近中文字幕国语免费完整 | 偷自拍亚洲视频在线观看99| 国产精品麻豆免费版| 免费看美女午夜大片| 色久悠悠婷婷综合在线亚洲| 日本高清不卡aⅴ免费网站| 亚洲AV无码1区2区久久| 2020因为爱你带字幕免费观看全集 | a国产成人免费视频| 亚洲AV本道一区二区三区四区| 免费无码中文字幕A级毛片| 亚洲无人区视频大全| 在线免费视频一区| 特级av毛片免费观看| 亚洲成av人影院| 在线观看无码AV网站永久免费| 久久亚洲精品无码gv| 国产乱辈通伦影片在线播放亚洲| 99久久精品毛片免费播放| 亚洲成av人片不卡无码| 日本高清免费中文字幕不卡| 日本一区二区三区免费高清在线| 亚洲无线观看国产精品| 114一级毛片免费| 免费精品视频在线| 亚洲视频在线观看网站| 女人18毛片免费观看| 国产福利免费视频| 亚洲国产成a人v在线| 亚洲精品成人久久久| 成人免费大片免费观看网站| 美女被免费网站在线视频免费|