day36_Spring學習筆記_04_SVN

1、SVN

1.一、版本控制

1.1.一、什麼版本控制?

  • 版本控制(Revision Control):是維護工程藍圖的標準作法,能追蹤工程藍圖從誕生一直到定案的過程。是一種記錄若干文件內容變化,以便未來查閱特定版本修訂狀況的系統。也是一種軟體工程技巧,籍以在開發的過程當中,確保由不一樣人所編輯的同一檔案都獲得更新。
  • 爲何學習版本控制?硬盤是否壞過。根據經驗法則再加上墨菲定理,壞事情每每都發生在最重要的時刻。
  • 經過文檔控制(documentation control),能記錄任何工程專案內各個模組的改動歷程,併爲每次改動編上序號。

1.1.二、版本控制軟件

  • CVS(Concurrent Versions System)表明協做版本系統或者併發版本系統,是一種版本控制系統,方便軟件的開發和使用者協同工做。
  • VSS(Visual Source Safe)只能在windows下,做爲 Microsoft Visual Studio 的一名成員,它主要任務就是負責項目文件的管理。
  • Git是用於Linux內核開發的版本控制工具。它採用了分佈式版本庫的方式,沒必要服務器端軟件支持,使源代碼的發佈和交流極其方便。Git的速度很快,這對於諸如Linux kernel這樣的大項目來講天然很重要。Git最爲出色的是它的合併跟蹤(merge tracing)能力。
  • SVN(Subversion),是一個開放源代碼的版本控制系統,採用了分支管理系統,它的設計目標就是取代CVS。

1.二、SVN的特色

  • 統一的版本號。CVS是對每一個文件順序編排版本號,在某一時間各文件的版本號各不相同。而Subversion下,任何一次提交都會對全部文件增長到同一個新版本號,即便是提交併不涉及的文件。因此,各文件在某任意時間的版本號是相同的。版本號相同的文件構成軟件的一個版本。
  • 原子提交。一次提交不論是單個仍是多個文件,都是做爲一個總體提交的。在這當中發生的意外例如傳輸中斷,不會引發數據庫的不完整和數據損壞。
  • 重命名、複製、刪除文件等動做都保存在版本歷史記錄當中。
  • 對於二進制文件,使用了節省空間的保存方法。(簡單的理解,就是隻保存和上一版本不一樣之處)
  • 目錄也有版本歷史。整個目錄樹能夠被移動或者複製,操做很簡單,並且可以保留所有版本記錄。
  • 分支的開銷很是小。
  • 優化過的數據庫訪問,使得一些操做沒必要訪問數據庫就能夠作到。這樣減小了不少沒必要要的和數據庫主機之間的網絡流量。
  • 支持元數據(Metadata)管理。每一個目錄或文件均可以定義屬性(Property),它是一些隱藏的鍵值對,用戶能夠自定義屬性內容,並且屬性和文件內容同樣在版本控制範圍內。
  • 支持 FSFS 和 Berkeley DB兩種資料庫格式。
  • 不足:只能設置目錄的訪問權限,沒法設置單個文件的訪問權限。

1.三、SVN的體系結構

1.四、安裝SVN

  • 版本

    我通常喜歡安裝最新版本的軟件。
  • 測試安裝
  • 檢查path系統環境變量

1.五、建立倉庫

  • 命令格式:svnadmin create 路徑
  • 倉庫目錄結構
  • 注意:建立倉庫時,目錄必須是空的,即要新建文件夾

1.六、SVN服務器啓動

  • 命令格式:svnserve -d -r 倉庫的路徑
    -d 後臺執行
    -r 版本庫的根目錄
    SVN服務器啓動時,指定「倉庫路徑」不一樣,就會分紅多倉庫單倉庫
  • 多倉庫【掌握】

    啓動:svnserve -d -r 倉庫父目錄,表示啓動的是多倉庫
    例如:svnserve -d -r D:\learn\JavaWeb\repository\svn
    訪問:svn://localhost:3690/bbs
  • 單倉庫【瞭解】

    啓動:svnserve -d -r 倉庫的根,表示啓動的是單倉庫
    例如:svnserve -d -r D:\learn\JavaWeb\repository\svn\bbs
    訪問:svn://localhost:3690
  • 每次啓動SVN服務器都要輸入不少命令,太麻煩了,有沒有解決辦法?
  • 有,咱們能夠將操做註冊成操做系統的「服務」,咱們的電腦開機時SVN服務器就啓動了。
    • 一、在「運行」中輸入 services.msc 打開「服務」
    • 二、註冊「服務」
      前提:必須以管理員身份打開命令提示符。
      命令格式:sc create svn binpath= "D:\learn\JavaWeb\Subversion\Subversion\bin\svnserve.exe --service -r D:\learn\JavaWeb\repository\svn" displayname= "SVN-Service" start= auto depend= Tcpip
    • 三、刪除「服務」
      命令格式:sc delete svn
    • 四、將SVN-Service的啓動類型設置爲`手動`後,就能夠手動啓動或中止「服務」了

      測試手動開啓SVN和手動中止SVN:

1.七、操做【掌握:思想】

1.7.一、checkout

  • 命令格式:svn checkout 服務器地址 下載地址

1.7.二、commit

  • 命令格式:svn commit 資源
    問題1:還沒有歸入版本控制

    解決辦法:使用add子命令,將要提交的文件添加到本地版本庫

    再次提交
    問題2:沒有編寫日誌

    解決辦法:採用 -m 參數設置日誌信息

    問題3:沒有權限,認證失敗

    解決辦法:修改權限,設置匿名訪問
    先打開文件:D:\learn\JavaWeb\repository\svn\bbs\conf\svnserve.conf

    再次提交,沒有問題了

1.7.三、update

  • 再次更新:
  • 命令格式:svn update

1.八、圖形化:TortoiseSVN 安裝

  • 安裝包文件:
  • 安裝成功以後,之後全部的操做都是「右鍵」
  • 若在TortoiseSVN的簡單使用中若出現以下警告,說明SVN服務器是關閉的,須要咱們手動打開SVN服務器(由於咱們設置的是手動啓動和關閉SVN服務器):
    警告以下:

    命令格式:net start svn

    解決問題成功截圖:

1.九、svn權限

  • 先找到倉庫,配置SVN權限須要3個配置文件,位置:D:\learn\JavaWeb\repository\svn\bbs\conf
  • 核心配置文件:svnserve.conf
    關閉匿名訪問,開啓權限認證

    肯定帳號配置文件位置

    肯定權限認證配置文件位置
  • 帳號配置文件:passwd(一行表示一個帳號,帳號由用戶名和密碼組成,使用等號分隔)
  • 權限認證配置文件:authz
    配置組,配置格式:組名 = 用戶1, 用戶2, …

權限認證細節配置css

多倉庫
    [bbs:/]         --> 肯定倉庫名稱。[bbs:/doc]    表示給bbs倉庫的doc目錄配置權限認證
    @itheima = rw   --> 給itheima組設置權限,取值:read ('r') ,read-write ('rw') ,or no access ('')
    user3 = r       --> 給user3 指定權限
    *=              --> 其餘用戶沒有權限
單倉庫
    [/]             --> 表示單倉庫的根。[/doc]  表示單倉庫中的doc目錄

1.十、TortoiseSVN 常見圖標

1.十一、myeclipse svn 插件【很重要】

1.11.一、安裝插件

  • myeclipse svn 插件位置
  • 若是3個都不能使用,直接換eclipse。
  • 安裝方式1:直接複製

eclipse 插件規範示例:數據庫

eclipse 目錄
  --- features目錄
  --- plugins 目錄windows

  • 安裝方式2:使用link文件

詳解以下:服務器

將插件解壓到任意目錄(不含中文、空格),在MyEclipse\MyEclipse 2017 CI\dropins目錄添加一個link文件
    文件名:自定義
    文件擴展名:link
    文件內容:
        path = 插件完整目錄,須要指定到eclipse,便可以看到(features、plugins)這兩個目錄
        例如:
            path = D:\\learn\\Java\\MyEclipse\\MyEclipse 2017 CI\\dropins\\svn\\eclipse  或者
            path = D:/learn/Java/MyEclipse/MyEclipse 2017 CI/dropins/svn/eclipse
  • 安裝方式3:在線安裝
    在MyEcplise中點擊Help --> Install from Site… --> Add… --> Location --> Next 等等
  • 安裝成功標誌

1.11.二、myeclipse svn插件使用

1.十二、svn 目錄規範

  • svn 目錄規範
  • trunk ,主線:用於存放程序整個進度
  • branches ,分支,例如:bug修復、特殊功能等
  • tags ,標籤(版本),此目錄下的內容不能修改
  • 軟件開發小圖解示例:
相關文章
相關標籤/搜索