SVN版本控制

前言

目錄

SVN.PNG

1.SVN簡介

1.1 SVN是什么?

  • 定義
    一個開放源代碼的版本控制系統(tǒng),管理著碎時間改變的數(shù)據(jù),這些數(shù)據(jù)放置在一個中央資料檔案庫(repository)中。這個檔案庫很像一個普通的文件服務(wù)器, 不過它會記住每一次文件的變動。 這樣你就可以把檔案恢復(fù)到舊的版本, 或是瀏覽文件的變動歷史。

1.2 優(yōu)缺點

  • SVN的優(yōu)點:
    (1)采用集中式,易于管理,保證安全性;
    (2)管理方便,邏輯明確,理念符合常規(guī)思維;
    (3)代碼的一致性高;
    (4)適合人數(shù)不多的項目開發(fā);
    (5)允許一個文件有任意多的可命名屬性,會關(guān)注所有的文件類型;
    (6)支持二進(jìn)制文件,更容易處理大文件;
    (7)支持空目錄。
  • SVN的缺點:
    (1)服務(wù)器壓力太大,數(shù)據(jù)庫容量暴增;
    (2)必須連接在服務(wù)器上,否則基本不能工作、提交、對比、還原等;
    (3)不適合開源開發(fā)。

1.3 工作原理

版本庫是集中存放在中央服務(wù)器的,而干活的時候,用的都是自己的電腦,所以要先從中央服務(wù)器取得最新的版本,然后開始干活,干完活了,再把自己的活推送給中央服務(wù)器。中央服務(wù)器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然后回到家自己改,改完了,再放回圖書館。


image

集中式版本控制系統(tǒng)最大的毛病就是必須聯(lián)網(wǎng)才能工作,如果在局域網(wǎng)內(nèi)還好,帶寬夠大,速度夠快,可如果在互聯(lián)網(wǎng)上,遇到網(wǎng)速慢的話,可能提交一個10M的文件就需要5分鐘,這還不得把人給憋死啊。

2.如何使用

2.1 VisualSVN server服務(wù)器的搭建和使用

下載地址
http://subversion.apache.org/packages.html

  • 安裝
    先安裝VisualSVN server的安裝包,雙擊VisualSVN server安裝包,如圖:


    image

    點Next,進(jìn)入下一步,如圖:


    image

    點同意,進(jìn)圖下一步,如圖:
    image

    選擇上面一個選項,點Next,進(jìn)入下一步,如圖:
    image

    Location是指VisualSVN Server的安裝目錄,Repositorys是指定你的版本庫目錄.Server Port指定一個端口,Use secure connection勾山表示使用安全連接,Use Subversion authentication 表示使用Subversion自己的用戶認(rèn)證.點擊Next,進(jìn)入下一步,如圖:


    image

    點Install,進(jìn)入下一步,如圖:
    image

    等待安裝完成,如圖:
    image

    安裝完成后,啟動VisualSVN Server Manager,如圖:
    image

    可以在窗口的右邊看到版本庫的一些信息,比如狀態(tài),日志,用戶認(rèn)證,版本庫等.要建立版本庫,需要右鍵單擊左邊窗口的Repositores,如圖:
    image

    在彈出的右鍵菜單中選擇Create New Repository或者新建->Repository,進(jìn)入下一步:
    image

    輸入版本庫名稱,勾上Create default structure復(fù)選框(推薦這么做).點擊OK,版本庫就創(chuàng)建好了,版本庫中會默認(rèn)建立trunk,branches,tags三個文件夾,如圖:


    image

    這時候我們將項目導(dǎo)入到版本庫中,找到你的項目文件夾,在項目文件夾上點擊鼠標(biāo)右鍵,找到SVN菜單,選擇導(dǎo)入,如圖:
    image

    在彈出的對話框中填上版本庫URL,這個URL可以從VisualSVN Server Manager中獲取,在你的版本庫上單擊右鍵,選擇Copy URL to Clipboard,這樣就把版本庫URL復(fù)制到你的剪貼版了.如圖:
    image

    將復(fù)制的版本庫URL粘貼上,在URL后面加上trunk子路徑.然后在導(dǎo)入信息里面填上導(dǎo)入信息"導(dǎo)入項目到版本庫".如圖:
    image

    點擊確定,所選中的項目就會被導(dǎo)入到版本庫中.如圖:
    image

    項目導(dǎo)入到版本庫以后,不能隨便讓誰都能夠讀寫版本庫,所以需要建立用戶組和用戶.
    在VisualSVN Server Manager窗口的左側(cè)右鍵單擊用戶組,選擇Create User或者新建->User,如圖:
    image

    在彈出的對話框中填寫User name和Password,然后點擊OK,如圖:
    image

    用相同的方式分別創(chuàng)建用戶Develpoer1,Develpoer2,Develpoer3,Test1,Test2,Manger六個用戶,分別代表3個開發(fā)人員,兩個測試人員和一個項目經(jīng)理,如圖:
image

然后我們建立用戶組,在VisualSVN Server Manager窗口的左側(cè)右鍵單擊用戶組,選擇Create Group或者新建->Group,如圖:


image

在彈出窗口中填寫Group name為Developers,然后點Add按鈕,在彈出的窗口中選擇三個Developer,加入到這個組,然后點Ok,如圖:


image

用相同的方式創(chuàng)建組Managers,Testers,如圖:
image

接下來我們給用戶組設(shè)置權(quán)限,在MyRepository上單擊右鍵,選擇屬性,如圖:
image

在彈出的對話框中,選擇Security選項卡,點擊Add按鈕,選中Developers,Managers,Testers三個組,然后添加進(jìn)來,給Developers,Managers權(quán)限設(shè)置為Read/Write,Tester權(quán)限設(shè)置為Read Only,如圖:

image

到此,服務(wù)端就完成了.

2.2Tortoise SVN客戶端的使用

下載地址
注意下載跟你電腦匹配的安裝包,在頁面的下面你還可以找到語言包,如圖:

image

接下來我們安裝TortoiseSVN,雙擊安裝包,進(jìn)入下一步.如圖:
image

點擊Next,進(jìn)入下一步,如圖:
image

選擇接受,然后點擊Next,進(jìn)入下一步,如圖:
image

選擇安裝路徑,然后點擊Next,進(jìn)入下一步,如圖:
image

點擊Install,開始安裝,如圖:
image

等待安裝完成,安裝完成后如圖:
image

接下來我們安裝簡體中文語言包,這個非常簡單,一路Next就行,就不截圖了.語言包安裝完成以后在桌面任意空白地方單擊鼠標(biāo)右鍵,會在右鍵菜單里找到SVN,如圖:
image

選擇設(shè)置,進(jìn)入下一步,如圖:
image

在右邊的語言里面選擇簡體中文,然后點擊應(yīng)用,確定,漢化即完成,如圖:
image

到這里,服務(wù)端和客戶端都已經(jīng)安裝完畢。
接下來,我們用客戶端去檢出代碼,在桌面空白處單擊右鍵,選擇SVN檢出,在彈出的對話框中填寫版本庫URL(具體獲取方式,上面講上傳項目到版本庫的時候講過),選擇檢出目錄,點擊確定.如圖:
image

開始檢出項目,如圖:
image

檢出完成之后,我們打開工作副本文件夾,會看到所有文件和文件夾都有一個綠色的√.如圖:
image

至此,創(chuàng)建版本庫和使用TortoiseSVN導(dǎo)入項目,檢出項目已經(jīng)介紹完畢.

下面將介紹TortoiseSVN的使用,以及沖突解決辦法.
接下來,試試用TortoiseSVN修改文件,添加文件,刪除文件,以及如何解決沖突等.
添加文件
在檢出的工作副本中添加一個Readme.txt文本文件,這時候這個文本文件會顯示為沒有版本控制的狀態(tài),如圖:


image

這時候,你需要告知TortoiseSVN你的操作,如圖:


image

加入以后,你的文件會變成這個狀態(tài),如圖:
image

這時候使用TortoiseSVN進(jìn)行提交.這樣別人就能看到你所做的更改了,如圖.
image

修改文件

使用TortoiseSVN更新,修改工作副本中的Readme.txt文件,加入"hello world!",然后保存,你會發(fā)現(xiàn)Readme.txt文件的圖標(biāo)改變了,如圖:
image

這個紅色的嘆號代表這個文件被修改了,這時候,提交更改,其他人即可看到你的更改.

重命名文件

使用TortoiseSVN更新,重命名工作副本中的Readme.txt文件為"Readme1.txt',然后保存,你會發(fā)現(xiàn)Readme.txt文件的圖標(biāo)改變了,如圖:
image

更添加文件一個道理,這時候你需要告訴TortoiseSVN你的操作,如圖:

加入以后,提交,這時候版本庫中的Readme.txt文件將會被重命名為"Readme1.txt".

刪除文件

使用TortoiseSVN更新,使用TortoiseSVN刪除工作副本中的Readme.txt文件,然后提交,版本庫中的相應(yīng)文件即被刪除掉了,如圖:


image

強(qiáng)制寫注釋

為了以后你能更清晰的看到你所做的每一次更改的原因,你在每次提交的時候應(yīng)該寫上注釋,而且盡量詳細(xì).如圖:
image

但是,可能有的人因為覺得太繁瑣,而不填寫注釋,這不利于以后的版本控制,可以將強(qiáng)制在提交的時候?qū)懽⑨?首先單擊右鍵,選擇TortoiseSVN->屬性,如圖:


image

在彈出的對話框中,點擊新建->日志大小,設(shè)置提交日志的最小字符數(shù)和鎖定日志的最小字符數(shù)為20,提交文本框中顯示邊線的字符位置設(shè)置為100,點擊確定,如圖:
image

提交,以后再次提交的時候,如果輸入的注釋少于20個字符,將無法提交.

沖突解決

沖突問題是最常見的問題,它是這樣產(chǎn)生的,A用戶check out了一個工作副本A,接著B用戶又check out了一個工作副本B.然后A用戶對副本A中的文件C做了修改(可以是內(nèi)容修改,文件刪除,重命名,以及位置移動),并且提交.這時候B用戶也對文件C的相同部分做了修改,這時候如果B用戶進(jìn)行提交,會先被告知版本過時,要求更新,然后更新的時候會提示沖突了,這時候可以用沖突編輯器進(jìn)行手動選擇.

TortoiseSVN客戶端重新設(shè)置用戶名和密碼

在第一次使用TortoiseSVN從服務(wù)器CheckOut的時候,會要求輸入用戶名和密碼,這時輸入框下面有個選項是保存認(rèn)證信息,如果選了這個選項,那么以后就不用每次都輸入一遍用戶名密碼了。

不過,如果后來在服務(wù)器端修改了用戶名密碼,則再次檢出時就會出錯,而且這個客戶端很弱智,出錯之后不會自動跳出用戶名密碼輸入框讓人更新,我找了半天也沒找到修改這個用戶名密碼的地方。

最終,找到兩種解決辦法:

辦法一:在TortoiseSVN的設(shè)置對話框中,選擇“已保存數(shù)據(jù)”,在“認(rèn)證數(shù)據(jù)”那一行點擊“清除”按鈕,清楚保存的認(rèn)證數(shù)據(jù),再檢出的時候就會重新跳出用戶名密碼輸入框。


image

如果方法一不起作用,則可以采用方法二:

Tortoise的用戶名密碼等認(rèn)證信息都是緩存在客戶端文件系統(tǒng)的這個目錄:

C:/Documents and Settings/Administrator/Application Data/Subversion/auth

刪除auth下面的所有文件夾,重新連接遠(yuǎn)程服務(wù)器進(jìn)行檢出,對話框就會出現(xiàn)!

3.遇到的問題和解決辦法

4.總結(jié)

http://www.runoob.com/svn/svn-tag.html
https://www.cnblogs.com/mq0036/p/5250198.html
http://www.itdecent.cn/p/994a9f34f878

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容