SVN簡單使用

1、爲何要使用SVN?

在程序的編寫過程當中,每一個程序員都會負責開發一個或多個模塊,且開發中會生成不少不一樣的版本,
這就須要程序員有效的管理代碼,在須要的時候能夠迅速,準確取出相應的版本。
 

2、Subversion是什麼?

 它是一個自由/開源的版本控制系統,一組文件存放在中心版本庫,記錄每一次文件和目錄的修改,Subversion容許把數據恢復到早期版本,
或是檢查數據修改的歷史,Subversion能夠經過網絡訪問它的版本庫,從而使用戶在不一樣的電腦上進行操做。

 

3、SVN的安裝

1.客戶端:TortoiseSVN (小烏龜)linux

2.服務端:VisualSVN Server程序員

與正常軟件安裝相同。windows

 

4、VisualSVN Server簡單使用

安裝完成後,啓動VisualSVN Server Manager,如圖:



能夠在窗口的右邊看到版本庫的一些信息,好比狀態,日誌,用戶認證,版本庫等.服務器

1)創建版本庫

要創建版本庫,須要右鍵單擊左邊窗口的Repositores,以下圖:網絡


在彈出的右鍵菜單中選擇Create New Repository或者新建->Repository:
svn

 

empty: 建立的倉庫裏是空
this

single project repository: 建立的倉庫有三個文件夾: trunk, branch, tags
url

進入下一步,以下圖:
spa


 

能夠設置權限,在後期建立的SVN用戶中也能夠更改操作系統

點擊【下一步】,以下圖:


 

建立完成,這個url是當前建立倉庫的地址

點擊【create】,以下圖:

 點擊【Finish】便可完成基本建立。

  2) 須要創建用戶和組,而且須要分配權限。

 ①在VisualSVN Server Manager窗口的左側右鍵單擊用戶組,選擇Create User或者新建->User,如圖:



點擊User後,進入以下圖:


 

建立好的用戶,在彈出的對話框中,選擇Security選項卡,點擊Add按鈕,選中longen0707,而後添加進來,權限視狀況而定,以下圖:


 

 

5、TortoiseSVN經常使用操做

1)checkout項目文件。

    新建或者進入目錄下(好比qianduan1),右鍵 --> Svn Checkout -->


其中URL能夠在SVN服務器獲取到,在myRepositories下右鍵新建文件/(或者在本地建立文件與之關聯):



qianduan文件被創建,而後好比我這樣右鍵 --> copy下:


便可。

將複製的版本庫URL粘貼上,以下圖:



點擊【ok】按鈕後,就能夠檢索出來:






注意事項:

   .svn這個隱藏目錄記錄着兩項關鍵信息:工做文件的基準版本和一個本地副本最後更新的時間戳,千萬不要手動修改或者刪除這個.svn隱藏目錄和裏面的文件!!,不然將會致使你本地的工做拷貝(靜態試圖)被破壞,沒法再進行操做。

① TortoiseSVN圖標介紹

    

   一個新檢出的工做複本使用綠色的對勾重載,表示Subversion狀態正常。

    

  在你開始編輯一個文件以後,狀態就變成了已修改,而圖標重載已變成了紅色感嘆號。

經過這種方式,你能夠很容易地看出那些文件從你上次更新工做複本被修改過,且須要提交。

     若是在提交的過程當中出現了衝突,圖標就會變成了黃色感嘆號。

    

加號告訴你有一個文件或者目錄已經被計劃加入到版本控制中。

文件裏的內容,SVN認爲不是版本庫中的文件(沒法識別)


在SVN中被忽略的文件/夾

 

2)  TortoiseSVN Client基礎操做:

    1. SVN檢出(SVN Checkout)

     在文件夾或者目錄下單擊右鍵 > 選擇SVN檢出,以下圖所示

     

  點擊後,在彈開窗口的版本庫url框中輸入版本庫的目錄地址,而後點擊肯定,以下圖

 

再點擊ok按鈕後,以下圖:

在彈出的對話框中輸入用戶名和密碼(能夠選擇性勾選「Save authentication」保存認證),驗證成功後,項目文件開始從遠程服務器下載到本地工做目錄中。

點擊ok按鈕後,便可獲取完成,以下圖所示:

 2.  增長(Add)

  在test項目文件下,新建一個b.txt文件,提交到版本庫的方法以下2種:

   1. 先提到變動列表中,再commit到配置庫中,選擇新增文件,右鍵SVN菜單執行「Add「操做提交到」變動列表中」,而後右鍵SVN菜單執行」SVN Commit」提交到版本庫中。

   2. 不提交到變動列表中,而是直接commit配置庫中,選擇該文件,右鍵svn菜單執行」SVN Commit」操做。

  3.  刪除(Delete)

     若是被刪除的文件還未入版本庫,則能夠直接使用操做系統的刪除操做刪除該文件。

     若是被刪除的文件已入版本庫,則刪除的方法以下:

  1. 選擇被刪除文件,右鍵svn菜單執行」delete」操做,而後選擇被刪除文件的父目錄,右鍵svn菜單執行」SVN Commit」.

使用操做系統的刪除操做刪除該文件,而後選擇被刪除文件的父目錄,右鍵svn菜單執行」SVN Commit」,在變動列表中選擇被刪除的文件。

 4.  更名(Rename)

    修改文件名,選中須要重命名的文件或文件夾,而後右鍵「TortoiseSVNàRename「,在彈出的對話框中輸入新名稱,點擊」ok」按鈕,並將修改文件名後的文件或文件夾經過 「SVN Commit」提交到SVN服務器上。

 5.  SVN還原(SVN Revert)

    右擊想要回退的文件或者文件夾,在TortoiseSVN彈出菜單中選擇」Update to reversion…」 而後會彈出一個窗口,以下:

  

好比說咱們要回退到第10個版本只須要在Revision中填寫相應的版本號,而後點擊ok便可。

 6.  檢查更新(Check for modifications)

     此功能能夠顯示你所作的修改有哪些尚未提交的,此功能不光能看到對文件的修改變化,全部的變化都能看到,包括增長文件或者目錄,刪除文件或者目錄,移動文件或者目錄等,若是你點擊了檢查版本庫,那你還能夠看到版本庫裏的改動,既別人提交了哪些文件的改動,你還沒更新到本地,以下:

  

 7.  SVN更新(SVN Update)

    更新本地代碼與SVN服務器上最新的版本一致,只要在須要更新的文件夾上點擊右鍵或者在文件下空白處點擊右鍵,選擇」SVN Update」 (獲取指定版本中的內容,點擊右鍵執行SVN菜單中的「Update to reversion「),就能夠了。

 8.  如何解決衝突文件

     對於每一個衝突的文件Subversion在你的目錄下放置了三個文件:以下:

   

     爲何會產生衝突代碼呢?緣由很簡單就是由於不一樣的人,同時修改了同一個文件的同一個地方,這時候,他提交了,我沒有提交,我就提交不了,這個時候咱們要進行先更新,而後在進行提交便可,那若是產生衝突,會生成如上3個文件。 

  1. 1.txt.mine 是衝突前本身的文件。能夠看下內容以下:

      aaaasdf11222333 dderderder

      2.  1.txt.r4 是衝突前本地的版本文件

     內容以下:aaaasdf11222333

      3.  1.txt.r5  是別人趕在你以前提交的版本

      內容以下: b

其中,<<<<<<<<.mine .....=======之間的代碼是你本身的,而======......>>>>>>>.r5是別人與你衝突的代碼部分

這樣就不難理解爲何會產生衝突這種奇怪的東西了,由於大家修改的同一塊代碼,固然會產生衝突。

解決方案以下:

  選擇文件->右鍵Editconficts:這種方法須要衝突雙方通過協商以後將代碼更改統一以後再提交。不只解決了衝突並且還保證了代碼是正確的,由於只有一方的代碼被提交.

     

   如上圖所示,紅色的部分是衝突代碼:theirs表示當前服務器端最新的代碼,Mine表示本身修改後的代碼,Merged表示合併後的代碼。點擊紅色後右鍵選擇:use this text block就能夠將該部分代碼做爲合併後的代碼

接下來再說說因爲衝突致使重要代碼被覆蓋的狀況。衝突發生時若是採起的措施不對可能會致使部分代碼丟失,若是想要還原以前的代碼也很容易。

選擇文件->右鍵選擇show log在這裏面你能夠看見以前提交的全部版本,找到你想要恢復的版本右鍵選擇revert to this version 就能夠恢復了.

SVN提交(SVN Commit)

    Svn的提交是將在工做空間作的修改進行提交,包括文件內容的修改,文件或目錄的添加,刪除,命名,移動等操做。

9.   顯示日誌(Show log)

       經過此功能能夠查到誰,何時,對那個目錄下的那些文件進行了那些操做,以下圖:

  

10.  版本庫瀏覽(Repo-browser)

     此功能是用來瀏覽須要查看的資料庫,在本地文件夾下點擊右鍵,選擇TortoiseSVNàRepo-browser,在彈出的對話框中輸入資料庫地址,再輸入用戶名和密碼,就能查看到你須要查看到版本庫的內容,在這你還能看到那些文件被誰鎖定了,以下圖:

   

6、SVN 的命令行方式

進入 DOS 窗口,切換到 E:\Repositories 目錄下
一、創建倉庫:svnadmin create test1(在當前目錄下建立文件)

輸入如下命令,切換到E:\Reporsitories目錄下
E:
Cd Repositories
3)輸入:svnadmin create test1 ,則在當前目錄建立版本庫test1
Cd test1
Dir
查看版本庫文件已生成

版本庫建立完成後,須要建立用戶、組以及配置對應的權限了 
linux系統中直接cd 到對應配置文件目錄下,採用vi命令去編輯便可,此處仍是以windows
系統下進行操做講解。
如本機已建立一個Test1的倉庫:E:\Repositories\Test1,在conf文件夾下配置如下3個文件
1)svnserve.conf:SVN服務的配置文件,將如下配置取消註釋:
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

2)authz:存放用戶或組的權限(讀、寫),配置以下

 

3)passwd: 存放用戶和密碼,如增長如下用戶和密碼

 

4)以上3個文件的配置信息只針對經過svn://方式去訪問時纔有效,經過http://或file://方式

訪問時無效。配置完成後,在cmd窗口啓動svn服務 Svnserve -d -r E:\Repositories\Project5-d 指服務做爲一個獨立的端口監控進程,-r 即批定要暴露的倉庫路徑,如本機倉庫路徑爲E:\Repositories\test1,那麼客戶端svn訪問時只需採用以下地址便可訪問:svn://ip/test1,E:\Repositories 就不須要展現出來。(注意,ip後面不要跟端口號)右擊鼠標-》tortoise SVN ->Rebo - browse 在地址欄輸入:svn://T420-PC/Test3/,輸入authz文件中受權的用戶名和密碼登陸。(T420-PC 是服務器的計算機名,一般客戶端訪問時是替換成該機器IP)在本地新建一個空文件夾,經過SVN客戶端將上述倉庫checkout到該文件夾中,能成功checkout表明配置無問題了。

相關文章
相關標籤/搜索