什麼是SVN呢,下圖給出了SVN與開發們之間的關係服務器
SVN的做用:svn
解決代碼管理混亂問題
不用備份多個版本,佔用磁盤空間大
解決代碼衝突
不易引起bug
能夠追溯問題代碼的修改人和修改時間
容易恢復至之前正確版本
能夠進行權限控制
下降項目版本發佈難度工具
如何使用SVN呢?spa
1、環境配置命令行
1. 安裝SVN服務器版本控制
雙擊打開SVN服務器安裝程序日誌
點擊「Next」按鈕blog
勾選「I accept the terms in the License Agreement」複選框,點擊「Next」按鈕進程
勾選「VisualSVN Server and Administration Tools」單選框並勾選「Add Subversion command-line tools…」複選框,並點擊「Next」按鈕ip
點擊「Standard Edition」按鈕,選擇安裝類型
選擇好程序安裝路徑和後續項目的文檔存放文件的位置和端口號後點擊「Next」按鈕
以下圖顯示443端口被佔用,點擊「OK」按鈕
修改端口爲8443,點擊「Next」按鈕
點擊「Install」按鈕
等待安裝
安裝完成,不選中複選框,點擊「Finish」按鈕
咱們進入以前選擇的程序安裝路徑下的bin目錄看是否有svnadmin.exe和svnserve.exe兩個文件
設置環境變量的目的就是使得程序安裝路徑 D:\Program Files\VisualSVN Server\bin 下的svnadmin.exe和svnserve.exe兩個程序能夠直接使用
二、安裝SVN客戶端
雙擊「TortoiseSVN」客戶端安裝程序
等待安裝
點擊「Next」按鈕
點擊「Next」按鈕
選擇客戶端程序的安裝路徑(能夠根據我的喜愛選擇,小編選擇了D:\Program Files\TortoiseSVN),再點擊「OK」按鈕
跳轉到了以前的界面,能夠看到路徑已經更改爲功了,點擊「Next」按鈕
點擊「Install」按鈕
等待安裝
安裝完成,點擊「Finish」按鈕
桌面右擊,菜單欄裏顯示有「TortoiseSVN」,表示SVN客戶端安裝成功
2、SVN Manager工具在SVN服務器上建立用戶、組、版本庫並設置版本庫的訪問權限
服務器安裝完成後,咱們在服務器上建立用戶、組、版本庫並設置版本庫的訪問權限
一、打開SVN服務器管理程序
點擊開始菜單---點擊「全部程序」---點擊「VisualSVN」---點擊「VisualSVN Server Manager」啓動SVN服務器管理程序
跳出SVN服務器管理界面
二、服務器中建立用戶
右擊左側導航欄中的「Users」,點擊"Create User…"建立新用戶
跳出建立新用戶窗口,輸入即將建立的用戶名,用戶密碼,並確認密碼(一般用戶名和密碼都是參與項目的,並使用SVN這個工具的人員進行設置的)
小編隨手建立的幾個用戶
建立好了以後就能夠在SVN服務器管理界面的右側內容窗口中看到設置好的用戶,下面是小編建立的幾個用戶
三、服務器中建立項目組
用戶建立好了以後就能夠建立項目組了,右擊導航欄中的「Groups」--點擊「Creat Group」
輸入組名,點擊「Add」按鈕選擇須要添加到組裏的用戶,再點擊「ok」按鈕
四、建立版本庫並設置版本庫的訪問權限
右擊左側導航欄中的「Repositories」,點擊「Creat New Repository」建立版本庫(方便用戶登陸SVN配置管理器在建立的版本庫中存取數據)
跳出建立新倉庫的界面,選擇「Regular FSFS repository」(常規FSFS倉庫),再點擊「下一步」按鈕
輸出即將建立的倉庫名稱(寫當前的項目名稱,便於使用和管理),再點擊「下一步」按鈕
選擇「Empty repository」(空倉庫),再點擊「下一步」按鈕(實際公司項目選擇下面一種帶有目錄的倉庫比較多)
勾選「Customize permission」(自定義權限/容許),點擊「Custom…」
設置權限的類型(一、沒有使用權 二、只讀 三、讀寫),點擊「肯定」按鈕
點擊「Add…」按鈕,選擇能夠擁有權限的人(能夠選擇整個組,也能夠選擇特定的用戶)
跳轉界面,顯示倉庫中的組已經建立成功(能夠看到倉庫的類型:FSFS,)
瀏覽SVN服務器上的版本庫的方式(兩種)
方法1、SVN Manager工具中,選擇庫後點擊browse(瀏覽)
在SVN Manager窗口左側導航欄中找到想要瀏覽的庫,右擊--點擊browse瀏覽
輸入用戶名,密碼,點擊「登陸」按鈕
成功訪問
方法2、用SVN客戶端登陸瀏覽
右擊桌面---點擊「TortoiseSVN」----點擊「Repo-browser」
輸入要訪問的版本庫的URL地址,格式以下
輸入用戶、密碼,點擊「OK」按鈕
成功登陸(這邊小編的版本庫仍是空的!)
注意
咱們使用SVN客戶端訪問服務器上的版本庫時,必須保證服務器上的VisualSVN Server服務是開啓的
咱們能夠打開服務窗口查看該服務是否開啓,具體操做以下
版本庫目錄下的文件的做用
conf文件夾---配置文件(權限)
authz=authorization 存放用戶或組的權限(讀、寫)
passwd=authorization 存放用戶和密碼
svnserve.conf 存放SVN服務器的配置文件
db----存放數據
hooks---鉤子腳本:自動觸發部署
locks---上鎖
TortoiseSVN圖標集
文件夾常規:表示本地文件夾與服務器上的文件相匹配
文件夾衝突:commit本地文件夾時顯示與服務器上的文件衝突(通查出如今多人同時編寫同一個文本的狀況下)
文件夾已刪除:服務器上已經沒有這個文件夾了
文件夾無版本控制:新建文件夾還未添加到服務器上
添加文件夾:在本地新建文件夾雖然add,但還未commit到服務器上
文件夾被修改:文件夾被修改,還未commit到服務器上
文件夾只讀:文件夾只容許用戶閱讀
鎖定:文件夾被鎖定,除了施加鎖定的那個用戶其餘用戶均沒法修改服務器上的這個文件夾
文件被修改:文件修改事後,還未commit到服務器上
文件常規:文件夾與服務器上的文件一致
文件衝突:文件與服務器上的文件衝突
SVN客戶端基本圖形化操做
Check out (將服務器上的版本內容遷出到本地裏)
圖形界面建立的版本庫的簽出
方法一
在本地建立一個空的文件夾,進入文件夾後,右擊空白處--點擊「SVN Checkout」
輸入須要簽出版本庫的URL地址(格式:https://IP:port/svn/版本庫名稱),點擊「OK」按鈕
輸入有訪問該版本庫權限的用戶即密碼,點擊「OK」按鈕
點擊「OK」按鈕
方法2、使用客戶端瀏覽服務器上的項目文件
桌面右擊---點擊「TortoiseSVN」--「Repo-browser」
輸入要訪問版本庫的URL地址
將SVN服務器上的版本庫簽到本地的條件及成功狀態:
Add 添加文件
在簽出的文件夾裏新建文件test1.txt
內容以下
右擊須要添加到SVN服務器上的文件---點擊「TortoiseSVN」---點擊「Add」
點擊「OK」按鈕
點擊「OK」按鈕
添加完後的文件圖標會從問號變爲加號
Commit 提交(add、修改)
一種狀況:add後commit
在咱們的Checkout到本地的文件夾中新建一個test2.txt文件
右擊test2.txt--add
文本圖標就會顯示+號
右擊test2.txt---SVN Commit,提交到服務器上
第二種狀況:咱們修改完文件,要commit到服務器上
右擊要提交的文件---點擊「SVN Commit」
Update 更新
右擊要更新的文件或文件夾---「SVN Update」
Delete 刪除(刪除以後要commit,纔會生效)
右擊要刪除的文件或文件夾---「TortoiseSVN」---「Delete」
Rename 重命名(從命名後空白處右擊commit)
更名後須要在空白處右擊--點擊「SVN Commit」或者進入上一層目錄右擊---點擊「SVN Commit」
將文件名由「test2.txt」改成「test.txt」
空白處右擊---點擊「SVN Commit」或者進入上一層目錄右擊---點擊「SVN Commit」
Revert 還原(恢復到文件修改以前的版本)
修改文件內容後,在未commit以前,咱們能夠右擊文件---「TortoiseSVN」---「Revert」將文件還原到修改內容以前的文件版本
Show log 顯示日誌
export(導出,但不在版本庫內,修改不影響版本庫)
方法1、登陸SVN客戶端,右擊要導出的文件所屬的文件夾---點擊「Export」---選擇存放的本地路徑
方法2、右擊Checkout到本地的文件夾---點擊「TortoiseSVN」---點擊「Export」---選擇存放的路徑
Import 導入
右擊要導入的文件所在文件夾,點擊「TortoiseSVN」---「Import」
Get lock 鎖定(鎖定後的文本其餘人編譯後沒法commit)
右擊要鎖定的文本---點擊「TortoiseSVN」---點擊「Get lock」
Release lock 解鎖(鎖定的人主動解鎖後,其餘人能夠編譯並commit)
右擊鎖定的文本或文件---點擊「TortoiseSVN」---點擊「Release lock」
Diff 差別比較
右擊要進行差別比較的文件---點擊「TortoiseSVN」---選擇一種差別比較方式
Edit Conflict 處理衝突
一、兩個開發編寫同一個代碼文件
二、第一個開發編寫好代碼後commit 提交到服務器上
三、第二個開發未先Update,也直接修改了文件,而後commit,提交到了服務器上
四、提示須要先Update,但選擇Update後提示沒法更新,有Conflict
五、這是第二個開發須要解決衝突,本地文件中會出現如下的幾個文件
六、右擊須要解決衝突的文件(有衝突的文件上會有黃色感嘆號的標誌)---點擊「Edit conflict」
七、根據衝突內容人工判斷解決,最後commit
Update to revision(更新版本到哪一個版本)
右擊須要更新版本的文件---點擊「TortoiseSVN」---點擊「Update to revision」
能夠經過show log 查看文件的日誌信息,便於回到哪一個版本的文件
relocate(服務器IP地址變了,能夠用來更新地址)
工做當中要養成習慣,工做以前先Update,再鎖定
增、刪、改都要commit
用命令行建立版本庫
一、創建版本庫
打開dos命令窗口,輸入svnadmin create e:\Repositories\版本庫名稱
(Repositories指的是服務器安裝時指定的版本庫目錄,這裏輸入的路徑要和安裝服務器時指定的路徑同樣)
二、配置e:\Repositories\conf文件夾下的三個文件
Svnserve.conf:SVN服務器的配置文件,講一下配置取消註釋
passwd:存放用戶和密碼,如增長一下用戶和密碼
authz文件:存放用戶或組的權限(讀、寫),配置以下
三、啓動服務
輸入svnserve -d -r e:\Repositories
-d指服務做爲一個獨立的端口監控進程,--r即批定要暴露的倉庫路徑,如本機倉庫路徑爲E:\Repositories\項目,那麼客戶端svn訪問時只需採用以下地址便可訪問:svn://ip/項目,E:\Repositories 就不須要展現出來,客戶端svn訪問時只需採用以下地址便可訪問:svn://ip。(注意,ip後面不要跟端口號)
若是輸入svnserve -d -r e:\Repositories\版本庫名稱
Subversion的標準目錄結構
Trunk-----主開發目錄
Branches-----分支開發目錄
Tags----tag存檔目錄,不容許修改