原文地址:http://www.weixingon.com/s/visualsvn+%E4%B8%AD%E6%96%87html
1.幾種代理管理工具的適用場景數據庫
A.若是你的項目是5-6人的小團隊,那麼使用VSS已經能夠了。apache
B.若是是幾十我的的團隊,團隊中須要建立代碼分支,或者須要跨平臺,跨地區開發,那麼SVN是一個不錯的選擇。瀏覽器
C.對於較大型的項目,若是是使用VS開發,那麼使用TFS是個不錯的選擇,和微軟本身的產品相結合,能夠說無縫。而且提供了項目 計劃、測試管理、代碼評審等一攬子功能,如此強大的項目管理工具,咱們不能說他很差,只是比較重量級,光就服務端安裝包就2G多,而且須要結果 SqlServer數據庫工做。安全
D.若是你的項目是開源項目開發人數不定,而且存在較多分支,那麼推薦使用GIT。服務器
2.SVN簡介svn
名稱:SVN(Subversion的簡稱,開源的版本控制系統)工具
廠商:開源項目(CollabNet發起並提供啓動資金,目前Wandisco是貢獻最多的全職Subversion開發者並擔任releasemanager.)學習
功能:支持建立分支、標誌,支持回滾、事務等。測試
優勢:安裝操做都比較簡單,支持跨平臺,跨地區管理代碼;有較快的速度;支持文件重命名;支持不鎖定開發;管理方便,符合大衆思惟習慣;易於上手,代理一致性較高。
缺點:適合中小型項目,人數在幾十人爲佳;不適合人數較多的項目,好比開源項目;服務器開銷較大,數據庫容易暴增;不能離線工做,沒鏈接服務器,不能進行對比,還原,提交等工做。
升級:開源項目,管理比也比較規範,升級很及時,不斷有新版本出來,本文編寫時就有新版本1.9.3.27038更新了(2天前更新,可見很及時)。
推薦:★★★★(中、小型項目適用)
3.SVN的安裝和使用
首先SVN和其餘版本控制工具同樣,有Server端和Client端,下面分別介紹安裝和使用。
3.1安裝包下載
安裝包,咱們能夠從官方網站下載,官網提供了Linux和Windows各類版本,可使用,咱們主要介紹Windows下的安裝使用
下載URL:http://subversion.apache.org/packages.html
拉到最底下
如上圖,有兩個咱們須要的安裝包,先點擊第一個"TortoiseSVN"這是一個客戶端工具,主要用於和WINDOWS資源管理器綁定,進行文件管理
分別提供了32位和64位兩種版本,根據咱們操做系統下載對應的。下面是各類語言包。咱們下載簡體中文
而後,咱們點擊圖1的第二個地址,進入服務端和VS插件下載網站,以下圖:
咱們下載「VisualSVNforVisualStudio」這個主要用於VS開發源代碼版本控制。
再下載「VisualSVNServer」這個就是服務器上須要安裝的管理工具。
一共有四個安裝包,下載後以下:
我是64位操做系統,下載的全是64位,可根據本身的操做系統下載32位或64位
3.2SVN服務端安裝
雙擊下載的「VisualSVN-Server-3.5.0-x64.msi」進入SVN服務器安裝
下一步
選擇贊成聲明,點下一步
按默認,安裝服務器及管理員工具和命令行工具,點下一步
這裏咱們選擇標準版便可,企業版須要每臺服務器支付950美圓,標準版免費,而且其功能基本能夠知足咱們的使用須要。點下一步
這裏Location爲安裝路徑,Repositorys爲數據庫存放地址,下面是端口號和是否使用安全鏈接,按默認便可,點下一步,
配置完成,點Install安裝
安裝完成,選擇啓動SVN服務器。
3.3SVN服務端使用
3.3.1建立版本庫
打開剛纔安裝好的SVN服務器端,「VisualSVNServerManager」以下
服務端主界面右邊爲一些狀態信息,左邊是咱們建立的版本庫,用戶及組。
在版本庫上右擊,打開菜單,分別爲建立版本庫,導入已存在的版本庫,瀏覽。
咱們點擊「CreateNewRepository..」建立一個新的版本庫,打開窗口以下:
這裏是選擇版本庫類型,咱們按默認,點下一步
這裏輸入一個版本庫名稱,點下一步。
這裏咱們按默認,選擇建立一個空的版本庫,點下一步,
這裏是給新建立的版本庫,設置認證方式,咱們按默認,選擇「全部用戶都具備讀寫權限」點擊建立,完成版本庫的新建。
點完成,結束版本庫建立。
3.3.2建立用戶
下面建立用戶,以下圖:
右擊Users打開建立用戶對面框,輸入用戶名和密碼,點擊OK,
右擊組,點擊建立組
輸入組名Dev,點擊下面的添加,把前面建立的用戶yu加入到該組,點OK
3.3.3用戶受權
在前面建立的版本庫名MyObject上右擊,打開菜單中選Properties...
打開的權限窗口以下,咱們點擊Add..添加用戶或組,在這裏,咱們能夠選擇組,則表示該組下的全部都具備相應權限,也能夠單選用戶
咱們選擇dev組名,而後在Permissions中選擇可讀可寫權限,以下圖
至此,服務端配置完成。
3.4SVN客戶端安裝
下面咱們進行SVN客戶端安裝,找到咱們以前下載的安裝包,
先安裝「小烏龜」TortoiseSVN-1.9.3.27038-x64-svn-1.9.3.msi,再安裝語言包LanguagePack_1.9.3.27038-x64-zh_CN.msi
客戶端的安裝沒什麼好說的,全程下一步。
語言包的安裝也是全程下一步(若是喜歡英文版,這步能夠省略)
語言包安裝後,並不會立刻顯示所安裝的語言,須要一步設置。
咱們在開始菜單中,找到TortoiseSVN的設置,也能夠在你的電腦上任何文件上右鍵打開setting
打開設置窗口,點擊General,在右邊的語言選項中,選中簡體中文,便可完成語言設置。
至此,客戶端安裝完成。
3.5SVN客戶端基本操做
這節是重點,將學習如何使用SVN進行版本控制
3.5.1簽出項目文件
首先咱們在客戶端電腦上建立一個項目文件夾,MyObject
右擊項目文件夾,點簽出
打開簽出窗口,
在這裏,咱們要輸入前面服務端中建立的版本庫地址,咱們能夠在Server端Copy這個地址,打開Server端
右擊版本庫,點擊復RUL,而後粘貼過來
簽出深度有幾項能夠選擇,這裏咱們默認全遞歸,便可。點擊肯定
這時會彈出一個認證窗口,在這裏須要驗證一下用戶,使用咱們服務端建立的用戶
下面的保存認證,默認爲選中,選中後,下次再執行簽出等操做,則無需再次驗證。若是本臺電腦爲你一我的使用,能夠保存,如多人使用,請注意安全。
點擊肯定後,若是認證用戶成功,則簽出完成。
簽出完成後,由於咱們的版本庫中並無任何文件,所以本的項目文件夾也是空的,此時,咱們若是顯示隱藏文件及文件夾
能夠看到,文件夾MyObject中多了一個隱藏文件夾
.svn這個隱藏文件夾中記錄着很是重要的信息,包括工做文件版本和本地副本時間等,千萬記住,不要手動修改或刪除,不然你本地的副本將被破壞,沒法進行正常版本控制了。
3.5.2文件9種圖標含義
咱們在安成SVN客戶端安裝後,須要重啓電腦或註銷電腦,就會發現加入版本庫的本地文件或文件夾有一個SVN專有小圖標,一共有9種,如下是幾種圖標的含義:
綠色的勾:圖標表示這是一個最新取出的工做副本,他的Subversion狀態是normal。
灰色的勾:灰色圖標表示」只讀」,若是你給一個文件設置了svn:needs-lock屬性,Subversion會讓此文件只讀,直到你得到文件鎖。只讀文件具備這個重載圖標來表示你必須在編輯以前先獲得一個鎖。
紅色感嘆號:當你開始編輯一個文件,這個文件的狀態就會變成modified,圖標也會變成紅色圓圈帶一個感嘆號。這樣你就能夠輕易的知道自從上次更新以來都有修改過哪些文件,須要提交哪些文件。
黃色感嘆號:三角符號帶感嘆號,表示在一次update中產生了一個衝突(conflict)。
藍色加號:意味着這個文件或文件夾已經被計劃加入到版本控制之下。
紅叉叉:表示相應文件或文件夾被計劃刪除(deleted),或者表示文件缺失。
灰色一行:表示不受版本控制,忽略版本控制。
藍色問號:暫時還沒收到版本的控制,可是沒有被忽略。
鎖釦:表示文件被鎖定,他的Subversion狀態是normal,必須先釋放鎖才能讓別人的更改提交。
其實這個圖標,咱們也能夠在SVN客戶端設置中去更改樣式,下面是SVN的幾種樣式,可供選擇。(不得不說,SVN想的很是周到,優秀軟件就該如此)
3.5.3添加文件到版本庫(Add)
新文件的添加,有兩種方法,一是點Add(加入)先加入到變動列表,再提交;二是直接提交,
個右鍵菜單分別對應加入和更新,
若是先點加入後,再提交,文件會自動選中,而且狀態爲增長,若是直接提交,須要手動選中該文件,以下圖,點擊肯定,完成文件添加。
此時,咱們在服務端中,點擊刷新版本庫,會發現已經成功加入了一個新文件。
3.5.4刪除文件(Delete)
若是被刪除的文件,尚未加入到版本庫,則能夠直接刪除,若是已加入版本庫,則須要經過右擊文件,選中SVN中的刪除
刪除文件後,其父目錄會有一個紅色歎號,表示該目錄下的文件被修改了,此時,咱們須要提交一次父級目錄。
3.5.5文件更名(Rename)
修改文件名,選中須要重命名的文件或文件夾,而後右鍵「TortoiseSVN更新文件名「,在彈出的對話框中輸入新名稱,點擊」肯定」按鈕,並將修改文件名後的文件或文件夾經過「SVN提交」提交到SVN服務器上。
3.5.6還原(Revert)
還原文件或文件夾到之前的版本,以下
右擊文件或文件夾,在TortoiseSvn,點擊更新至版本....
打開版本更新窗口,在顯示日誌中選擇前期版本或在版本號中輸入要回退的版本號,便可。
3.5.7檢查更新(Checkformodifications)
這個功能,能夠看到你所作的哪些變動沒有提示,包括文件或目錄的增長、修改、刪除等,點擊檢查版本庫,還能夠看到其餘人改動的內容
3.5.8更新(SVNUpdate)
更新本地文件與SVN服務器上最新的版本一致,在須要更新的文件夾上點擊右鍵或者在文件下空白處點擊右鍵,選擇」SVN更新」(獲取指定版本中的內容,點擊右鍵執行SVN菜單中的「更新至版本「)。
注意:這裏若是你新建的文件或文件夾沒有加入到Server,更新後,文件或文件夾依然存在(這也是SVN人性化的地方,求同存異,不會由於更新版本而丟失已經建立的文件)
3.5.9解決衝突文件
在更新之後,常常會有衝突文件的存在,這是由於,SVN支持不鎖定更改,也就是你編輯文件的同時,別人也能夠更改此文件。若是大家更新了同一文件的同一段代碼。更新後,就會生成三個備份文件,而且標記衝突文件。
對於這種常有的問題,該如何解決,有兩種解決方案:
1.放棄本身的更新,回滾到之前版本
2.雙方協商,修改代碼並提交
固然SVN也爲咱們提供了衝突代碼比較功能
打開」與前一版本比較「,能夠經過比較,來修改代碼,達到一致後提交。
若是衝突代碼處理不當,一方代碼丟失,也不要怕,SVN仍然能夠經過」更新至版本「回覆丟失的內容。
3.5.10顯示日誌(Showlog)
右擊SVN菜單中選擇」顯示日誌「能夠查看誰在何時作了哪些操做。
3.5.11版本瀏覽器(Repo-browser)
右擊SVN菜單中選擇」版本瀏覽器「,輸入URL地址,未登陸的須要驗證用戶,在此能夠看到其餘人對該版本的操做狀況,好比鎖定等操做。
未完待下篇繼續……
3.6本節要點
本節主要介紹了一個很是優秀而且使用人數較多的源代碼版本控制工具SVN(全名:TortoiseSVN),它的使用場景適用於幾十人的中小型開發團隊,具備跨平臺(HTTP方式訪問)、跨地區、輕量級等衆多優勢。