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

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

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

    posts - 262,  comments - 221,  trackbacks - 0

    【1】創建一個版本庫


    為了使用SVN,除了必須安裝SVN軟件和客戶端(可選)外,我們還必須創建一個版本庫(Repository)。

    在創建版本庫之前我想說的是:不管如何請確保你有對版本庫進行直接訪問的權限。因為某些SVN操作的命令不能在客戶端進行,必須在擁有版本庫的機器上進行。所以我建議在本系列中把版本庫安裝在本地。

    按照約定,我們的版本庫要安裝在C:\Develop\MyRepository\Workspace下。那么創建它的命令是什么呢?

     Step 1: 在DOS命令行環境下轉到C:\Develop\MyRepository\目錄下

     Step 2: 在命令下執行如下命令:C:\Develop\MyRepository\Workspace>svnadmin create .

    這個命令執行后不會在控制臺輸出任何結果,但是你會發現現在在Workspace目錄下多出了若干目錄和文件,它們包括:目錄conf、db、hooks、locks和若干文件。這就是它的作用了。SVN通過這個命令為我們立即創建了一個版本庫,以后我們要做的所有操作,每次操作的歷史記錄都會存儲到這里。

    注意:
    svnadmin 命令是SVN管理員使用命令,必須在擁有SVN軟件的機器上進行。假如你是通過客戶端連接的,那你將沒有權限執行這個命令。其次 create 是子命令,指出本次的管理操作是一個創建動作。最后實心句點代表了當前目錄。整個命令就是告訴SVN:我希望在當前目錄位置創建一個版本庫。你可以指定任意位置來創建一個版本庫

    【2】訪問版本庫


    當版本庫創建完畢后,我們想到的第一件事就是如何訪問它。這里訪問版本庫包含三個方面的問題:

     A.以什么協議訪問?
     B.從什么地方訪問?
     C.用什么命令訪問?


    SVN提供了幾種訪問方式來讓我們看到它的版本庫內容。這些方式包括:
     
     A.使用傳統的file協議訪問方式
     B.使用傳統的http協議訪問方式
     C.使用獨有的svn協議訪問方式

    實際上我們最常使用的是第2和第3種方式。第2種方式適用于本地訪問,即不需要跨網絡的方式。第3種適用的范圍更廣,可以配置從外網訪問SVN,甚至可以使用SSL進行加密。這里因為我使用的Apache+SVN的組合,所以我的訪問方式是使用http協議。我的Apache的http.conf文件配置如下:

    <Location /svn>
       DAV svn
       SVNParentPath C:\Develop\MyRepository
       AuthType Basic
       AuthName "Subversion repositories"
       AuthUserFile C:\Develop\CollabNet\httpd\conf\passwd 
       AuthzSVNAccessFile C:\Develop\CollabNet\httpd\conf\authz
       Require valid-user 
    </Location>

    這意味著只要我訪問的URL路徑為:http://localhost:8000/svn/Workspace,Apache會知道我實際上訪問的是路徑:C:\Develop\MyRepository\Workspace。并且它知道如何去哪里找用戶驗證文件和權限文件。

    好了我們的第一個問題:使用什么方式訪問?已經解決了。答案就是使用http協議。

    關于第二個問題的答案已經變得很清晰了,既然http協議是基于web的協議,那么我們可以使用任何可以識別HTTP協議的工具去訪問。從瀏覽器,甚至從DOS命令端都可以。

    現在是最后一個問題了,SVN分別為服務端和客戶端提供了不同的命令來訪問版本庫。請看下面的表格:
     

    列出目錄結構

    顯示項目信息

    顯示項目內容

    顯示工作拷貝信息

    客戶端:svn

    svn list

    svn info

    svn cat

    svn status

    服務端:svnlook

    svnlook tree

    svnlook info

    svnlook cat


    我們可以看到對于svn和svnlook,它們都有一些相同的子命令:info,cat。那么在使用的時候有什么不同嗎?下面是兩個基本原則:

     A.svn命令是在客戶端使用的,而svnlook命令只能在擁有版本庫的機器上使用(即版本庫服務器)
     B.svn命令的路徑參數可以是本地路徑形式(PATH),也可以是遠程路徑形式(URL);svnlook只能使用PATH形式

    關于這些命令的不同用法,我會在后續的文章中一一講解。下面我們先來關注svn list和svnlook tree命令

    【3】svn list和svnlook tree命令
    假設目前在我們的版本庫下存在兩個目錄:Ericsson和Learning。那么我們現在分別使用svn list和svnlook tree命令來查看這個目錄結構:

    C:\>svn list http://localhost:8000/svn/Workspace
    Ericsson/
    Learning/

    C:\>svnlook tree C:\Develop\MyRepository\Workspace
    /
     Learning/
     Ericsson/

    C:\>svnlook tree http://localhost:8000/svn/Workspace
    'http://localhost:8000/svn/Workspace' is a URL when it should be a path

    我們說過svnlook tree命令只能使用本地路徑方式,不能使用遠程路徑,所以第三個命令執行時會報錯。

    可能你會說:我并沒有發現有諸如“C:\Develop\MyRepository\Workspace\Ericsson”或者“C:\Develop\MyRepository\Workspace\Learning”之類的路徑存在啊?注意這里不是以磁盤文件的路徑來表示的,如果我們把C:\Develop\MyRepository\Workspace視為版本庫的根目錄/,其它下級子目錄或文件就是相對于該根目錄/的。

    也許你又會說,那么我們能不能使用諸如svn list C:\Develop\MyRepository\Workspace的方式呢?試一試:

    C:\>svn list C:\Develop\MyRepository\Workspace
    svn: 'C:\Develop\MyRepository\Workspace' is not a working copy

    很遺憾,當svn list 命令使用本地路徑的時候,本地路徑必須是一個Working copy下的路徑,也就是說這個PATH必須是一個從版本庫check out出來的項目的根路徑或下級路徑。因為SVN最終會把該本地路徑轉換成對應的版本庫路徑(也即是遠程路徑形式,所以如果本地路徑不是一個Working copy那么轉換工作將會失敗)。

    下面我們把svn list和svnlook tree命令的用法總結一下:

      A.svn list PATH:列出PATH對應的版本庫路徑下的目錄內容
      B.svn list URL:  列出URL對應的路徑下的目錄內容
      C.svnlook tree REPOS_PATH:遞歸地列出REPOS_PATH對應的版本庫路徑下的目錄樹內容
      D.svnlook tree REPOS_PATH PATH_IN_REPOS: 遞歸地列出REPOS_PATH下子目錄PATH_IN_REPOS路徑下的目錄樹內容

    注意使用svnlook tree命令時,有時我們不想看到整棵目錄樹的內容,而只想看到某個分支的內容,那么我們就可以使用svnlook tree REPOS_PATH PATH_IN_REPOS的形式。另外要注意的是沒有svn list PATH SUB_PATH的形式。



    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
    posted on 2009-12-07 16:12 Paul Lin 閱讀(694) 評論(0)  編輯  收藏 所屬分類: 項目管理
    <2009年12月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国内精品免费视频自在线| 久久久久国产精品免费免费搜索| a级毛片无码免费真人久久| 怡红院免费的全部视频| 午夜免费福利视频| 免费精品人在线二线三线区别| 青青草国产免费久久久91| 又爽又高潮的BB视频免费看| 亚洲精品色午夜无码专区日韩| 亚洲高清无在码在线电影不卡| 久久综合久久综合亚洲| 日韩在线观看免费完整版视频| 成人久久免费网站| 日韩欧毛片免费视频| 免费一级做a爰片久久毛片潮喷| 亚洲熟妇丰满多毛XXXX| 亚洲成aⅴ人片在线观| 国产精品国产亚洲区艳妇糸列短篇| 国产精品免费看久久久香蕉 | 亚洲AV无码无限在线观看不卡| 蜜芽亚洲av无码一区二区三区 | 美女视频黄频a免费大全视频| 99麻豆久久久国产精品免费| 在线精品一卡乱码免费| 全黄性性激高免费视频| 久久亚洲免费视频| 亚洲人成未满十八禁网站| 高清永久免费观看| 黄页网站免费在线观看| 亚洲一级特黄无码片| 亚洲国产精品yw在线观看| 污网站免费在线观看| 67194成手机免费观看| 五月婷婷亚洲综合| 亚洲精品国产电影午夜| 人成电影网在线观看免费| 亚洲黄色片免费看| 久久亚洲av无码精品浪潮| 国产精品高清视亚洲精品| 中文字幕视频在线免费观看| 好大好硬好爽免费视频|