SVN

SVN

1.1 版本控制

1.1.1 什麼版本控制

版本控制(Revision Control):是維護工程藍圖的標準作法,能追蹤工程藍圖從誕生一直到定案的過程。是一種記錄若干文件內容變化,以便未來查閱特定版本修訂狀況的系統。也是一種軟體工程技巧,籍以在開發的過程當中,確保由不一樣人所編輯的同一檔案都獲得更新。java

 

1.1.2 版本控制軟件

l CVSConcurrent Versions System)表明協做版本系統或者併發版本系統,是一種版本控制系統,方便軟件的開發和使用者協同工做。git

l VSS Visual Source Safe )只能在windows,做爲 Microsoft Visual Studio 的一名成員,它主要任務就是負責項目文件的管理github

l Git是用於Linux內核開發的版本控制工具。它採用了分佈式版本庫的方式,沒必要服務器端軟件支持,使源代碼的發佈和交流極其方便。Git的速度很快,這對於諸如Linux kernel這樣的大項目來講天然很重要。Git最爲出色的是它的合併跟蹤(merge tracing)能力。數據庫

www.github.orgwindows

 。。。。。。服務器

l SVNSubversion ),是一個開放源代碼的版本控制系統,採用了分支管理系統,它的設計目標就是取代CVS網絡

 

1.2 SVN特色

l 統一的版本號。CVS是對每一個文件順序編排版本號,在某一時間各文件的版本號各不相同。而Subversion下,任何一次提交都會對全部文件增長到同一個新版本號,即便是提交併不涉及的文件。因此,各文件在某任意時間的版本號是相同的。版本號相同的文件構成軟件的一個版本。 併發

l 原子提交。一次提交不論是單個仍是多個文件,都是做爲一個總體提交的。在這當中發生的意外例如傳輸中斷,不會引發數據庫的不完整和數據損壞。eclipse

l 重命名、複製、刪除文件等動做都保存在版本歷史記錄當中。分佈式

l 對於二進制文件,使用了節省空間的保存方法。(簡單的理解,就是隻保存和上一版本不一樣之處)

l 目錄也有版本歷史。整個目錄樹能夠被移動或者複製,操做很簡單,並且可以保留所有版本記錄。

l 分支的開銷很是小。

l 優化過的數據庫訪問,使得一些操做沒必要訪問數據庫就能夠作到。這樣減小了不少沒必要要的和數據庫主機之間的網絡流量。

l 支持元數據(Metadata)管理。每一個目錄或文件均可以定義屬性(Property),它是一些隱藏的鍵值對,用戶能夠自定義屬性內容,並且屬性和文件內容同樣在版本控制範圍內。

l 支持FSFSBerkeley DB兩種資料庫格式。

l 不足:只能設置目錄的訪問權限,沒法設置單個文件的訪問權限。

 

 

1.3 體系結構

 

 

1.4 安裝

 

 

測試安裝

檢查path系統環境變量

 

 

1.5 建立倉庫

格式:cmd>  svnadmin create 路徑

 

 

倉庫目錄結構

注意:建立倉庫時,目錄必須是空的 ,及新建文件夾

 

1.6 啓動

格式cmd>  svnserve  -d  -r  倉庫的路徑

-d後臺執行

-r版本庫的根目錄

 

啓動時,指定「倉庫路徑」不一樣,分類:多倉庫和單倉庫

 

多倉庫【掌握】

啓動:svnserve -d -r 倉庫父目錄  ,表示啓動時多倉庫

例如:svnserve -d -r G:\repository\svn

訪問:svn://localhost:3690/bbs

單倉庫

啓動:svnserve -d -r 倉庫的根  ,表示啓動時單倉庫

例如:svnserve -d -r G:\repository\svn\bbs

訪問:svn://localhost:3690

 

將操做註冊成操做系統的「服務」,開機啓動。

1.「運行」,services.msc 打開「服務」

2. 刪除「服務」

3. 註冊「服務」

sc create svn binpath= "D:\java\Subversion\bin\svnserve.exe --service -r G:\repository\svn" displayname= "SVN-Service" start= auto depend= Tcpip

4. 啓動或中止「服務」

 

1.7 操做【掌握 思想】

 

 

1.7.1 checkout

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

 

1.7.2 commit

格式:svn commit  資源

 

問題1:沒有歸入版本控制

使用add子命令 添加到本地版本庫

問題2:沒有編寫日誌

採用 -m  參數設置日誌信息

問題3:沒有權限

修改權限,設置匿名訪問

G:\repository\svn\bbs\conf\svnserve.conf

 

1.7.3 update

格式: svn update

 

 

 

 

1.8 圖形化:TortoiseSVN 安裝

 

安裝成功以後,全部的操做都是「右鍵」

 

1.9 svn權限

權限須要3個配置文件

l svnserve.conf

開啓認證

肯定帳號配置文件位置

肯定認證配置文件位置

l passwd  帳號配置 (一行一個帳號,帳號用戶名和密碼組成,使用等號分隔)

l authz 認證配置文件

配置組 格式:組名 = 用戶1 ,用戶2....

認證細節配置

多倉庫

[bbs:/]   --> 肯定倉庫名稱 。[bbs:/doc]  bbs倉庫的doc目錄配置權限

@itheima = rw --> itheima組設置權限。

read ('r') read-write ('rw') or no access ('').

user3 = r --> user3 指定權限

*= --> 其餘用戶沒有權限

單倉庫

[/] -->當倉庫的根  [/doc]  單倉庫doc目錄

 

1.10 TortoiseSVN 常見圖標

 

 

1.11 myeclipse svn 插件

1.11.1 安裝插件

 

若是3個都不能使用,直接換eclipse

 

安裝方式1:直接複製

eclipse插件規範

eclipse 目錄

| -- features目錄

| -- plugins 目錄

方式2:使用link文件

將插件解壓到任意目錄(不含中文、空格),在myeclipse/dropins目錄添加一個link文件

文件名:自定義

文件擴展名:link

文件內容:

path = 插件完整目錄,須要指定到eclipse,及能夠看到(features plugins

例如:

path=D:\\java\\MyEclipse\\MyEclipse 10\\svn\\eclipse

path=D:/java/MyEclipse/MyEclipse 10/svn/eclipse

方式3:在線安裝

 

安裝成功標誌

 

1.11.2 操做

 

 

 

 

 

1.12 svn目錄規範

 

 

 

 

trunk  ,主線,用於存放程序整個進度

branches ,分支,例如:bug修復、特殊功能等

tags,標籤(版本),此目錄下的內容不能修改

相關文章
相關標籤/搜索