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

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

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

    jasmine214--love

    只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    Subversion家族工具種類

    Posted on 2011-01-10 19:31 幻海藍夢 閱讀(1405) 評論(0)  編輯  收藏 所屬分類: 版本管理配置管理
        Subversion Tools(幾種Subversion工具的安裝使用)                     
    0.關(guān)于Subversion
    Subversion具有以下的特點:
        幾乎所有的CVS特點-Subversion的初衷就是開發(fā)一個更好的CVS。
        目錄和文件都被版本化。
        拷貝、刪除操作被版本化。
        靈活的版本化metadata。
        commit原子化。
        Branching和tagging簡單易用。
        整合tracking。
        文件locking。
        符號鏈接可以被版本化。
        Apache網(wǎng)絡(luò)服務(wù)器選項,通過WebDAV/DeltaV協(xié)議。
        獨立的服務(wù)器選項-svnserve。
        可轉(zhuǎn)換的輸出。
        本地化消息。
        可交互的沖突解決方案。
        Repository只讀映射。
    ....
    關(guān)于更詳細的信息,請參考:http://subversion.tigris.org/features.html
    關(guān)于Subversion的FAQ列表,中文翻譯小組進行了翻譯,請參考http://subversion.tigris.org/faq.zh.html。感謝中文翻譯小組所作出的貢獻。

    一個典型的Subversion工作流程如下(摘自Subversion中文幫助):
    典型的工作周期是這樣的:
          更新你的工作拷貝
                svn update
          做出修改
                svn add
                svn delete
                svn copy
                svn move
          檢驗修改
                svn status
                svn diff
          可能會取消一些修改
                svn revert
          解決沖突(合并別人的修改)
                svn update
                svn resolved
          提交你的修改
                svn commit

    SVN的命令集如下:
       add
       blame (praise, annotate, ann)
       cat
       checkout (co)
       cleanup
       commit (ci)
       copy (cp)
       delete (del, remove, rm)
       diff (di)
       export
       help (?, h)
       import
       info
       list (ls)
       lock
       log
       merge
       mkdir
       move (mv, rename, ren)
       propdel (pdel, pd)
       propedit (pedit, pe)
       propget (pget, pg)
       proplist (plist, pl)
       propset (pset, ps)
       resolved
       revert
       status (stat, st)
       switch (sw)
       unlock
       update (up)
    可以使用svn help或者svn help subcommand(例如svn help checkout)來獲取幫助。

    一 般來說,使用圖形化的GUI來作為Subversion的客戶端使得操作更加的簡單易用,注入Toitorse SVN或者CollabNet的Subversion客戶端工具,如果使用集成開發(fā)環(huán)境,例如Eclipse,MS Visual Studio,NetBeans等,都會具有對應(yīng)的Subversion Plugin的支持,以去除手動使用SVN客戶端命令的繁瑣操作,另外使用命令行工具的一個缺點就是進行同步(diff)命令時,顯示的格式不夠用戶友好 (與集成IDE的插件相比)。
    所以本文主要介紹服務(wù)器端的版本庫的搭建與設(shè)置,而不涉及客戶端的使用(命令行或者IDE客戶端)

    1.Subversion工具種類
    如果僅僅需要安裝一個版本庫,那么只需要構(gòu)建一個Subversion客戶端,客戶端可以是命令行客戶端,也可以是GUI客戶端。
    如果需要一個網(wǎng)絡(luò)的版本庫,那么需要安裝Apache2服務(wù)器或者一個svnserve服務(wù)器。
    相對于win32的發(fā)布包,Subversion更多的應(yīng)用于*nix服務(wù)器,畢竟就穩(wěn)定性可安全性而言,*nix系列服務(wù)器要優(yōu)于windows服務(wù)器(筆者個人認為)。
    可以在如下鏈接:http://subversion.tigris.org/getting.html獲取各個操作系統(tǒng)的Subversion工具。
    本文中的操作系統(tǒng)平臺為Win32。
    接下來筆者將根據(jù)以下幾種方式搭建SVN網(wǎng)絡(luò)服務(wù)器。
    a.Tigris.org : svn-win32-1.5.5 + Apache 2.2.11
    http://subversion.tigris.org/files/documents/15/44589/svn-win32-1.5.5
    http://labs.xiaonei.com/apache-mirror/httpd/binaries/win32/apache_2.2.11-win32-x86-openssl-0.9.8i.msi

    b.CollabNet (Certified binaries)
    CollabNetSubversion-server-1.5.5-1
    http://downloads-guests.open.collab.net/files/documents/61/1373/CollabNetSubversion-server-1.5.5-1.win32.exe

    c.VisualSVN (VisualSVN Server)
    VisualSVN-Server-1.6.3
    http://www.visualsvn.com/files/VisualSVN-Server-1.6.3.msi
    (基于Subversion1.5.5版本構(gòu)建)

    d.SlikSVN
    SlikSVN1.5.6
    http://www.sliksvn.com/pub/Slik-Subversion-1.5.6-win32.msi

    上 述軟件均為開源軟件。其中CollabNet公司對開發(fā)Subversion的部分全職工作人員提供薪水,并且擁有部分Subversion代碼的版權(quán), 但是該版權(quán)是BSD/Apahce風(fēng)格的版權(quán),即可以隨心所欲的去下載,修改,或者重新發(fā)布新的版本,而不需要經(jīng)過CollabNet公司或者其他任何一 個人的許可。

    FAQ:我現(xiàn)在所運行的是Apache 1.x,但是我不能僅僅為了支持Subversion版本庫而將其轉(zhuǎn)換成Apache 2.0。這是否意味著我不能使用Subversion服務(wù)器?

    不必,你可以用svnserve作為Subversion的服務(wù)器,它可以很好的工作。

    在 使用Apache server時,如果你想使用分布式創(chuàng)作和版本管理協(xié)議(WebDAV)和所有其他一些好的功能特性,那么是的,你需要Apache 2.0。但是不管怎樣,當(dāng)你繼續(xù)在80端口運行Apache1.0的時候,你總是可以在另外一個不同的端口運行Apache2.0。不同版本的 Apache可以在同一臺機器上很好的和平相處。僅僅需要在改變httpd.conf文件中把Listen指令從80改成8080,或者其他你想要改成的 端口。然后確保在你公布版本庫的URL的時候加以說明:(例如,http://svn.mydomain.com:8080/repos/blah /trunk/)。

    2.Subversion Win32 + Apache 2.11
    a.安裝SVN:將Subversion Win32解壓縮到本地目錄,Subversion的安裝路徑為$SVN_HOME,例如F:\svn-win32-1.5.5。下文中使用$SVN_HOME表示SVN的安裝目錄。
    b.安裝Apache HTTP服務(wù)器:執(zhí)行安裝程序,安裝路徑為$HTTPD_HOME,例如F:\apache2.2。下文中使用$HTTPD_HOME表示Apache HTTP服務(wù)器的安裝目錄。
    注:Apache HTTP服務(wù)器默認使用80端口,如果80端口已經(jīng)被占用,請修改$HTTPD_HOME/conf/httpd.conf文件,將Listen 80修改為其他的端口。例如8080,9080等。
    安裝完成后,默認會啟動apache服務(wù)器,當(dāng)任務(wù)欄圖標(biāo)狀態(tài)為綠色的三角時,表示啟動正常。
    也可以通過在瀏覽器中輸入http://localhost:port/來進行測試。(默認情況下會打印It Works。)

    c.創(chuàng)建版本庫并測試
    安裝完Subversion Win32和Apache HTTP服務(wù)器之后,就是進行配置的工作了。
    首先在配置$HTTPD_HOME/conf/httpd.conf文件:
    使 用LoadModule來加載mod_dav_svn模塊,這個指示必須先與其它Subversion相關(guān)的其它配置出現(xiàn),如果你的Apache使用缺省 布局安裝,你的mod_dav_svn模塊一定在Apache安裝目錄的modules子目錄,LoadModule指示的語法很簡單,影射一個名字到它 的共享庫的物理位置:
    LoadModule dav_svn_module modules/mod_dav_svn.so
    注意,如果mod_dav是作為共享對象編譯(而不是靜態(tài)鏈接到httpd程序),你需要為它使用LoadModule語句,一定確定它在mod_dav_svn之前:
    LoadModule dav_module modules/mod_dav.so
    LoadModule dav_svn_module modules/mod_dav_svn.so

    將$SVN_HOME/bin/mod_dav_svn.so文件拷貝到$HTTPD_HOME/modules目錄下。

    在 你的配置文件后面的位置,你需要告訴Apache你在什么地方保存Subversion版本庫(也許是多個),位置指示有一個很像XML的符號,開始于一 個開始標(biāo)簽,以一個結(jié)束標(biāo)簽結(jié)束,配合中間許多的其它配置。Location指示的目的是告訴Apache在特定的URL以及子URL下需要特殊的處理, 如果是為Subversion準(zhǔn)備的,你希望可以通過告訴Apache特定 URL是指向版本化的資源,從而把支持轉(zhuǎn)交給DAV層,你可以告訴Apache將所有路徑部分(URL中服務(wù)器名稱和端口之后的部分)以/repos/開 頭的URL交由DAV服務(wù)提供者處理。一個DAV服務(wù)提供者的版本庫位于/absolute/path/to/repository,可以使用如下的 httpd.conf語法:

    <Location /repos>
        DAV svn
        SVNPath F:/svn/repos
    </Location>

    如 果你計劃支持多個具備相同父目錄的Subversion版本庫,你有另外的選擇,SVNParentPath指示,來表示共同的父目錄。舉個例子,如果你 知道會在/usr/local/svn下創(chuàng)建多個Subversion版本庫,并且通過類似http://my.server.com/svn /repos1,http://my.server.com/svn/repos2的URL訪問,你可以用后面例子中的httpd.conf配置語法:

    <Location /svn>
        DAV svn
        SVNParentPath F:/svn
    </Location>

    使 用上面的語法,Apache會代理所有URL路徑部分為/svn/的請求到Subversion的DAV提供者,Subversion會認為 SVNParentPath指定的目錄下的所有項目是真實的Subversion版本庫,這通常是一個便利的語法,不像是用SVNPath指示,我們在此 不必為創(chuàng)建新的版本庫而重啟Apache。

    使用$SVN_HOME/bin/svnadmin命令,創(chuàng)建到repos版本庫:
    svnadmin create f:/svn/repos

    此時打開瀏覽器,輸入URL:http://localhost:8080/svn/repos/
    即可看到一個空的版本庫,版本號為0。

    d.設(shè)置授權(quán)
    在上述步驟中搭建的版本庫是沒有權(quán)限的設(shè)置的,如果你的服務(wù)器可以被Internet訪問,那么任何人都可以修改你的版本庫,這通常是所不希望看到的。
    通過設(shè)置授權(quán),可以使得特定的用戶訪問特定的版本庫,或者特定的目錄。

    由 于Apache HTTP服務(wù)器提供了認證的功能,其中包括基本的HTTP認證以及SSL證書認證,由于配置SSL證書認證需要使用CA(認證中心)來辦法服務(wù)器端以及客 戶端的證書,過程比較麻煩,并且對于一般的項目來說,基本的HTTP認證已經(jīng)可以滿足要求。筆者接下來將介紹HTTP認證的設(shè)置方法。
    首先,創(chuàng)建保存用戶及密碼的文件,這個過程通過apache HTTP服務(wù)器提供的htpasswd.exe來完成:
    F:\apache2.2\bin>htpasswd.exe -help
    Usage:
            htpasswd [-cmdpsD] passwordfile username
            htpasswd -b[cmdpsD] passwordfile username password

            htpasswd -n[mdps] username
            htpasswd -nb[mdps] username password
     -c  Create a new file.
     -n  Don't update file; display results on stdout.
     -m  Force MD5 encryption of the password (default).
     -d  Force CRYPT encryption of the password.
     -p  Do not encrypt the password (plaintext).
     -s  Force SHA encryption of the password.
     -b  Use the password from the command line rather than prompting for it.
     -D  Delete the specified user.
    On Windows, NetWare and TPF systems the '-m' flag is used by default.
    On all other systems, the '-p' flag will probably not work.

    F:\apache2.2\bin>htpasswd.exe -cm f:/svn-auth-file zzl
    New password: ********
    Re-type new password: ********
    Adding password for user zzl

    F:\apache2.2\bin>htpasswd.exe -m f:/svn-auth-file lsz
    New password: ********
    Re-type new password: ********
    Adding password for user lsz

    下 一步,需要在httpd.conf文件中的Location標(biāo)記中添加一些設(shè)置來告訴服務(wù)器如何使用密碼文件。其中AuthType指定系統(tǒng)使用認證的類 型,此時我們指定為Basic認證,AuthName是提供給認證區(qū)域的一個人以名稱,用于顯示在瀏覽器的彈出窗口里,最后,AuthUserFile用 于指定密碼文件位置。
    如下所示:
    <Location /svn>
        DAV svn
        SVNParentPath F:/svn
        AuthType Basic
        AuthName "zzl_lsz's svn repository"
        AuthUserFile "F:/apache2.2/conf/svn-auth-file"
    </Location>
    此 時,這些設(shè)置告訴Apache當(dāng)需要授權(quán)時,需要向Subversion客戶端索要用戶名和密碼,但是還需要告訴Apache什么樣的客戶端需要授權(quán)的指 示。哪里需要授權(quán),哪里需要認證,最簡單的方式是保護所有的請求,通過Require valid-user來告訴Apache任何請求需要認證的用戶。
    <Location /svn>
        DAV svn
        SVNParentPath F:/svn
        AuthType Basic
        AuthName "zzl_lsz's svn repository"
        AuthUserFile "F:/apache2.2/conf/svn-auth-file"
        Require valid-user
    </Location>

    此時就設(shè)置好了版本庫的認證。
    通過重新啟動Apache服務(wù)器,然后再次輸入:http://localhost:8080/svn/repos/時,將會彈出認證對話框。提示如下的消息:
    http://localhost:8080 の "zzl_lsz's svn repository" に対するユーザ名とパスワードを入力してください
    只有輸入正確的用戶名和密碼才可以訪問版本庫。

    Apache + Subversion還可以基于路徑來對用戶進行授權(quán),諸如哪些用戶對哪些路徑具有哪些權(quán)限。
    在此不作介紹。

    推薦文章:
    請參考IBM DW文章:
    <用 Apache 和 Subversion 搭建安全的版本控制環(huán)境>
    http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/

    關(guān)于配置過程中可能出現(xiàn)的一些問題,例如修改Apache HTTP服務(wù)器的httpd.conf文件后Apache服務(wù)器無法啟動等,關(guān)于這些問題請參考:
    http://www.zxlm.cn/fh/thread-7317-1-1.html

    3.CollabNet Subversion
    可以在下面的URL中獲取CollabNet Subversion的windows版本安裝程序。
    http://www.open.collab.net/downloads/subversion/
    該版本中包含了Apache 2.2.8,ViewVC1.0.7以及Subversion1.5.6.
    下載后進行安裝。
    注:在安裝的第二個步驟中,會有如下的鏈接提示:
    View installation information on openCollabNet
    在這個鏈接中提供了針對該版本安裝程序的安裝幫助以及注意事項,例如筆者安裝的幫助為:
    http://www.collab.net/nonav/downloads/subversion/readme/svn_1_5_server_client_windows.html
    該幫助中提及了對平臺和配置的要求,重要的說明(Apache 2.0 -> 2.2),安裝技巧,ViewVC的安裝(必須有ActivatePython2.5.x的支持),升級過程,安裝后的指南等等。

    筆者希望使用ViewVC來更好的瀏覽版本庫中的內(nèi)容,所以需要安裝ActivatePython2.5.x。
    下載ActivatePython2.5.4.3并安裝。
    http://downloads.activestate.com/ActivePython/windows/2.5/ActivePython-2.5.4.3-win32-x86.msi
    安裝完成之后,開始安裝CollabNet Subversion:
    a.在"choose components"畫面選擇全部的components。
    此處包含了SVNSERVE和Apache兩個組件。
    b. 在"svnserve configuration"畫面保留默認的port,并設(shè)置自定義的repository path,推薦使用X:/svn,其中X為驅(qū)動器盤符。不選中"installsvnserve to run as windows service"。安裝完成后手動啟動該服務(wù)。
    c.在"apache configuration"畫面進行如下的設(shè)置:
    Host/Server Name:localhost
    Host Port:選擇未被占用的Port,例如10270
    不選中"Install Apache to run as a Windows service"
    Repository Path:自定義的版本庫路徑
    Repository Local Prefix:/svn
    選中"Enable ViewVC",此時在下一步中會選擇Active Python 2.5的安裝路徑。
    d.選擇Active Python的安裝路徑。
    e.在"Choose Install Location"畫面選擇要安裝的目標(biāo)路徑。
    然后進行安裝。直至安裝結(jié)束。

    安裝結(jié)束后,可以通過svnserve或者apache的方式來配置svn服務(wù)器,筆者將使用svnserve來配置版本庫。
    a.打開命令行提示符,進入到在上述安裝中b步驟設(shè)置的版本庫,然后使用svnadmin命令創(chuàng)建版本庫。
    F:\>cd svn_collabnet_svnserve
    F:\svn_collabnet_svnserve>svnadmin create my-first-database

    b.創(chuàng)建密碼文件
    使用文本編輯器編輯F:/svn_collabnet_svnserve/my-first-database/svnserve.conf文件。在配置文件中,可以看到如下的內(nèi)容:
    #password-db = passwd
    將注釋用的#號去掉。
    c.設(shè)置用戶和密碼
    使用文本編輯器編輯passwd文件F:/svn_collabnet_svnserve/my-first-database/,創(chuàng)建用戶和密碼。
    joe = super-secret
    可以添加任意個用戶。
    d.取消防火墻限制
    在啟動服務(wù)之前,確保防火墻沒有阻止該端口的使用。
    可以在下面的鏈接中查看相關(guān)的設(shè)置方法:
    http://www.microsoft.com/windowsxp/using/security/internet/sp2_wfexceptions.mspx
    svnserve.exe是程序名稱,端口號默認為3690。
    注:如果沒有設(shè)置防火墻,那么在下一步中啟動服務(wù)器時,windows也會彈出提示框,確認是否解除阻止。
    e.啟動服務(wù)
    如果選擇了將svnserve作為系統(tǒng)服務(wù),那么可以使用
    net start svnserve
    來啟動服務(wù),否則的話,可以使用
    svnserve -d -r F:/svn_collabnet_svnserve
    來啟動服務(wù)。
    f.設(shè)置權(quán)限
    可以給匿名用戶設(shè)置訪問(讀/寫)權(quán)限。
    修改F:/svn_collabnet_svnserve/my-first-database/svnserve.conf文件,通過設(shè)置
    anon-access = write
    anon-access = read
    anon-access = none
    來為匿名用戶設(shè)置寫權(quán)限,讀權(quán)限和無權(quán)限。
    g.檢出項目
    svn co svn://localhost/repository_name
    例如
    svn co svn://localhost/my-first-repos

    使用Apache服務(wù)器的配置方式與Apache + SVN win32的方式類似,只是CollabNet已經(jīng)添加好了LoadModule以及SVNParentPath的設(shè)置。
    只需要添加
    <Location /my-first-repos>
       DAV svn
       SVNParentPath F:\svn_collabnet_apache/my-first-repos
    </Location>
    即可。
    同時CollabNet已經(jīng)添加了viewvc的配置:
    <Location /viewvc>
       #Require valid-user
       AuthType Basic
       AuthName "Subversion repository"
       #AuthUserFile "F:\CollabNet_Subversion/httpd/conf/svn_auth_file"
    </Location>
    添加完成后,啟動Apache服務(wù)器。
    在瀏覽器中輸入http://localhost:8090/svn/my-first-repos/,可以看到my-first-repos的修訂版本號為0。
    可以通過viewvc更加直觀的查看svn的內(nèi)容:http://localhost:8090/viewvc/my-first-repos/

    4.VisualSVN Server
    首先,VisualSVN Server是完全免費的SVN服務(wù)器。
    其次,VisualSVN只通過一個安裝程序包來安裝Subversion,Apache以及管理控制臺。
    同時,VisualSVN(不是VisualSVN Server)是一個用于將Subversion集成到VisualStudio的工具。
    VisualSVN Server是一個小巧,安裝簡單,包含了最新的組件,易升級的軟件,同時可以作為windows平臺上的企業(yè)級的服務(wù)器,包含了穩(wěn)定的Apache軟件,支持SSL鏈接,SSL證書管理,Apache目錄認證和授權(quán),并支持組的概念。
    另外,VisualSVN Server具有用戶友好的管理控制臺。

    下載VisualSVN Server:http://www.visualsvn.com/files/VisualSVN-Server-1.6.3.msi
    該版本中包含Apache 2.2.9,Subversion1.5.5
    安裝過程非常的簡單:
    在"Custom Setup"畫面,進行主要的設(shè)置工作:
    Location:選擇自定義的VisualSVN安裝路徑
    Repositories:設(shè)置版本庫的父目錄。
    Server Port:設(shè)置是否使用https以及使用的端口。
    Authentication:可以設(shè)置是使用windows認證還是Subversion認證。
    (筆者沒有使用安全的http連接,端口設(shè)置為8070,使用Subversion認證。)
    設(shè)置完成后,進行安裝,直至完成。

    安裝完成后,啟動VisualSVN Server管理控制臺
    在未創(chuàng)建任何repository之前,VisualSVN Server管理控制臺主畫面顯示內(nèi)容如下:
    Status
    VisualSVN Server is running
    Server URL is http://vic-working:8070/svn/

    Accounts
    There are 0 users and 0 groups.
    Create new user...
    Create new group...

    Repositories
    Total 0 repositories.
    Create new repository...
    Import existing repository...

    可以看到,在該管理畫面中,可以查看Server URL,創(chuàng)建用戶和組,創(chuàng)建新的版本庫,導(dǎo)入已經(jīng)存在的版本庫。
    該管理控制臺和windows系統(tǒng)的計算機管理控制臺,或者MS SQLServer2000的管理控制臺類似,通過快捷菜單進行服務(wù)器的啟動與關(guān)閉。
    完全是windows風(fēng)格的管理控制臺。
    由于筆者不方便拷貝屏幕,所以就不將snapshots放在本文中。

    5.SlikSVN
    下載win32版本的Slik SVN 1.5.6版本:http://www.sliksvn.com/pub/Slik-Subversion-1.5.6-win32.msi
    下載完成后,進行安裝。
    在"choose setup type:"畫面選擇安裝的類型,典型安裝,自定義安裝以及完全安裝。
    選擇自定義安裝,進入到"Cust Setup"畫面:
    這里默認svnserve和extra tools為非選中狀態(tài)。按照默認的組件設(shè)置,進行安裝。
    這個工具不包含Apache組件,只是一個獨立的命令行客戶端。
    關(guān)于命令行客戶端的命令使用,請參考Subversion使用手冊。

    6.參考資料
    Subversion主頁:http://www.tigris.org/
    如果你想更加深入的了解Subversion,Subversion的幫助手冊是最好的參考:
    Subversion中文幫助:http://www.subversion.org.cn/svnbook/
    Subversion英文幫助:http://svnbook.red-bean.com/index.en.html
    Subversion服務(wù)器相關(guān)配置(包含在幫助文檔中):http://svnbook.red-bean.com/nightly/en/svn.serverconfig.html
    CollabNet主頁:http://www.open.collab.net/
    VisualSVN主頁:http://www.visualsvn.com/
    SilkSVN:http://www.sliksvn.com/en/home/
    SVN Win32 Lib:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=260
    Apache HTTP Server:http://httpd.apache.org
    Eclipse主頁:http://www.eclipse.org
    SubEclipse主頁:http://subclipse.tigris.org/
    Subclipse Eclipse update site URL: http://subclipse.tigris.org/update_1.4.x
    CollabNet Eclipse update site URL
    For Eclipse 3.4, copy this URL:
    http://downloads.open.collab.net/eclipse/update-site/e3.4
    For Eclipse 3.3, copy this URL:
    http://downloads.open.collab.net/eclipse/update-site/e3.3
    For Eclipse 3.2, copy this URL:
    http://downloads.open.collab.net/eclipse/update-site/e3.2
    Tortoise SVN Client:http://tortoisesvn.tigris.org/

    7.總結(jié)
    一般來將,如果作為企業(yè)級的業(yè)務(wù)應(yīng)用,可能不會選擇svn,比如超過1個GB的項目,例如 Google的Android的版本控制工具采用了Git來控制,還有IBM公司也使用自身的資源管理工具ClearCase,但是作為小型的項目,或者 群組項目,例如Apache使用的版本控制工具基本上都是svn,而如果個人開發(fā)者為了方便版本的管理,也可以采用SVN。
    一般軟件公司使用SVN的也比較多,但是可能會要求SSL連接以及高級的權(quán)限設(shè)置,而如果是個人開發(fā)者,筆者推薦(在windows環(huán)境下)VisualSVN這個工具,最主要的原因就是方便易用,全部是圖形界面,不需要使用svn命令來創(chuàng)建存儲庫等操作。
    (筆者發(fā)現(xiàn)本文被查看的次數(shù)比較多,所以對內(nèi)容進行了一下排版,例如粗體,斜體等的控制,以便于閱讀。)

    原文:http://blog.csdn.net/sunjavaduke/archive/2009/03/04/3957511.aspx

    主站蜘蛛池模板: 亚洲午夜精品久久久久久app| 久久久久国产精品免费免费不卡| 黄页免费在线观看| 在线观看免费亚洲| 久久久久亚洲AV无码专区首JN| 美女一级毛片免费观看| 我们的2018在线观看免费高清| 亚洲国产精品无码专区在线观看| 男性gay黄免费网站| 日韩激情无码免费毛片| a级毛片在线免费观看| 亚洲永久无码3D动漫一区| 有码人妻在线免费看片| 国产精品视_精品国产免费| 亚洲国产精品嫩草影院| 大香人蕉免费视频75| 色综合久久精品亚洲国产| 国产成人精品免费直播| 香蕉成人免费看片视频app下载 | 亚洲高清毛片一区二区| 亚洲人色婷婷成人网站在线观看| 毛片a级毛片免费观看免下载 | 亚洲av永久无码精品网址| 亚洲AV无码一区二区乱子伦| 成人影片一区免费观看| 亚洲自偷自拍另类12p| 95老司机免费福利| 亚洲黄色在线视频| 国产成人精品久久亚洲高清不卡 | 一级日本高清视频免费观看| 国产亚洲精品影视在线产品| 久久亚洲免费视频| 亚洲精品国产精品国自产网站| 一二三四影视在线看片免费 | 国产2021精品视频免费播放| 亚洲色大成网站WWW国产| 亚洲欧洲国产精品你懂的| 美女视频黄免费亚洲| 免费成人在线视频观看| 亚洲阿v天堂在线2017免费| 久久亚洲sm情趣捆绑调教|