SVN使用指南


為什么要使用配置管理

及時了解團隊中其他成員的進度。

輕松比較不同版本間的細微差別;

記錄每個文件成長的每步細節,利於成果的復用(reuse);

資料共享,避免以往靠郵件發送文件造成的版本混亂;

人人為我,我為人人。所有成員維護的實際是同一個版本庫,無需專人維護所有文件的最新版本;

協同工作,大大提高團隊工作效率,無論團隊成員分布在天涯還是海角;

1、Subversion/TortoiseSVN的版本控制系統

Subversion:是一個開源的版本控制系統,擁有CVS的大部分特征,並在CVS的基礎上有更強的擴展,用來代替 CVS 系統。

TortoiseSVN:SVN的客戶端工具,和資源管理器完美集成,基於TortoiseCVS的代碼開發,使用上與TortioseCVS極其相似;

2、配置庫( Repository )

SVN的核心是配置庫,儲存所有的數據,配置庫按照文件樹形式儲存數據-包括文件和目錄,任意數量的客戶端可以連接到配置庫,讀寫這些文件。通過寫數據,別人可以看到這些信息;通過讀數據,可以看到別人的修改。 

最特別的是 Subversion 會記錄配置庫中的每一次更改,不僅針對文件也包括目錄本身,包括增加、刪除和重新組織文件和目錄。

3、工作副本(WorkSpace)

       與位於中央配置庫相對應的是每個人的工作空間,它是每個程序員工作的地方,程序員從配置庫拿到源代碼,放在本地作為工作副本,在工作副本上進行查看、修改、編譯、運行、測試等操作,並把新版本的代碼從這里提交回配置庫庫中。

SVN工作模式

復制-修改-合並方案(Subversion默認的模式)

 

     在這種模型里,每一個客戶讀取項目配置庫建立一個私有工作副本——版本庫中文件和目錄的本地映射。用戶並行工作,修改各自的工作副本,最終,各個私有的復制合並在一起,成為最終的版本,這種系統通常可以輔助合並操作,但是最終要靠人工去確定正誤。

鎖定-修改-解鎖方案

 

     在這樣的模型里,在一個時間段里配置庫的一個文件只允許被一個人修改。 此模式不適合軟件開發這種工作。

 

SVN安裝


 

軟件下載點擊閱讀原文

為什么要使用配置管理

及時了解團隊中其他成員的進度。

輕松比較不同版本間的細微差別;

記錄每個文件成長的每步細節,利於成果的復用(reuse);

資料共享,避免以往靠郵件發送文件造成的版本混亂;

人人為我,我為人人。所有成員維護的實際是同一個版本庫,無需專人維護所有文件的最新版本;

協同工作,大大提高團隊工作效率,無論團隊成員分布在天涯還是海角;


1、Subversion/TortoiseSVN的版本控制系統

Subversion:是一個開源的版本控制系統,擁有CVS的大部分特征,並在CVS的基礎上有更強的擴展,用來代替 CVS 系統。

TortoiseSVN:SVN的客戶端工具,和資源管理器完美集成,基於TortoiseCVS的代碼開發,使用上與TortioseCVS極其相似;

 


2、配置庫( Repository )

SVN的核心是配置庫,儲存所有的數據,配置庫按照文件樹形式儲存數據-包括文件和目錄,任意數量的客戶端可以連接到配置庫,讀寫這些文件。通過寫數據,別人可以看到這些信息;通過讀數據,可以看到別人的修改。 

最特別的是 Subversion 會記錄配置庫中的每一次更改,不僅針對文件也包括目錄本身,包括增加、刪除和重新組織文件和目錄。

 


3、工作副本(WorkSpace)

       與位於中央配置庫相對應的是每個人的工作空間,它是每個程序員工作的地方,程序員從配置庫拿到源代碼,放在本地作為工作副本,在工作副本上進行查看、修改、編譯、運行、測試等操作,並把新版本的代碼從這里提交回配置庫庫中。


SVN工作模式

復制-修改-合並方案(Subversion默認的模式)

 

     在這種模型里,每一個客戶讀取項目配置庫建立一個私有工作副本——版本庫中文件和目錄的本地映射。用戶並行工作,修改各自的工作副本,最終,各個私有的復制合並在一起,成為最終的版本,這種系統通常可以輔助合並操作,但是最終要靠人工去確定正誤。

鎖定-修改-解鎖方案

 

     在這樣的模型里,在一個時間段里配置庫的一個文件只允許被一個人修改。 此模式不適合軟件開發這種工作。

 

SVN安裝

安裝完畢后,在“資源管理器”里點擊右鍵,會有如下菜單出現:

目錄結構

SVN使用流程

SVN使用圖標說明

SVN CheckOut檢出

作用:將版本庫中的內容檢出到本地工作副本

步驟:

  1.新建一個空文件夾; 比如:E:\Proj_trunk

  2.在此目錄中點擊右鍵-> SVN Checkout...

SVN CheckOut檢出注意事項

檢出深度:

   1.全遞歸(默認選擇)

   檢出完整的目錄樹,包含所有的文件或子目錄。

   2.直接節點,包含目錄 

 檢出目錄,包含其中的文件或子目錄,但是不遞歸展開子目錄。

   3.僅文件子節點

  檢出指定目錄,包含所有文件,但是不檢出任何子目錄。

   4.僅此項。 

 只檢出目錄。不包含其中的文件或子目錄。

省略外部引用:如果項目含有外部項目的引用,而這些引用我們不希望同時檢出,請選中忽略外部項目復選框。如果選中了這個復選框,更新的時候要使用命令”更新至版本Update to Revision...”

SVN Update更新

作用:更新工作副本使其成為版本庫中的最新版本

SVN將顯示出更新的文件和更新的次數

SVN Commit提交

對工作副本進行編輯后提交到SVN

在右鍵菜單中點擊SVN Commit

提交前寫好信息,點擊確定

SVN 權限控制

當進行提交文件操作的時候您將看到權限提示信息

輸入您的用戶名和密碼

保存權限設置(見紅圈) ,可以避免將來重復輸入用戶名和密碼

SVN 如何刪除認證數據

 步驟:點擊右鍵    選擇設置    以保存數據    清除認證數據

SVN  Show log顯示日志

SVN  日志信息填寫規則

好的日志信息和糟糕的日志信息

         日志信息主要記錄的是每次的修改內容。建議把一些重要數據、關鍵操作寫到日志信息中。

注:修改人和提交時間由軟件自動記錄,無需人工寫入日志信息

SVN  如何得到歷史版本

工作副本右鍵 顯示日志 選擇所需的版本號 保存版本至

 

 

SVN  Revert(還原)

作用:撤銷本地所有未提交的修改

注意:還沒有執行Commit操作之前執行此命令才可以,否則無效

SVN  Add添加

選中文件/文件夾(在新文件/文件夾所在父文件夾點擊右鍵),

在菜單中選擇“添加Add”命令。不需要受SVN控制的文件請取消打鈎。

SVN  Add to Ignore List (忽略文件)

添加忽略文件

  右鍵一個單獨的未進入版本控制文件TortoiseSVN (加入忽略列表)Add to Ignore List,會出現一個子菜單允許你僅選擇該文件,或者所有具有相同后綴的文件。 

刪除忽略文件:

       如果你想從忽略列表中移除一個或多個條目,右擊這些條目,選擇TortoiseSVN → 從忽略列表刪除。

已進入版本控制的文件或目錄不能夠忽略  

SVN  版本分支

這個版本歷史分析圖能夠顯示分支/標簽從什么地方開始創建,以及什么時候刪除。

版本分支圖將顯示以下內容: 

  (1)增加文件/文件夾(2) 已刪除文件/文件夾

  (3)分支最新版本    (4)  一般的文件/文件夾 

SVN  如何創建分支

兩種方式:

1.在版本庫瀏覽器中創建分支

 

 

2.在工作副本創建分支

創建分支成功

SVN  Switch切換

 文件創建分支后,可通過Switch選擇在主干工作或者在分支工作;

注意:

    (1)切換操作起來就象更新,因為它沒有丟棄我們在本地做的修改。

    (2)在工作副本里,當我們進行切換的時候,任何沒有提交過的修改都會被混合。

解決方法:

   1)在切換前提交修改;

   2)把工作副本恢復到一個已經提交過的版本(比如最新版本)。

SVN  合並

假設我們在分支上進行修改:添加一條輸出語句:

 System.out.println(“測試是否能將分支的修改合並到主干中!”) ;提交到配置庫中,現在執行將分支合並到主干的操作

 

SVN  分支合並到主干

右鍵主干的文件 選擇合並

SVN  合並時出現沖突

SVN  編輯沖突

SVN  沖突已解決

SVN  合並成功

SVN  什么是沖突

團隊協同工作時,當多位團隊成員同時修改同一個文件,造成本地文件與SVN系統中的文件版本不一致,而導致文件無法提交的情況

SVN  沖突產生原因

當團隊協同工作的時候,多位團隊成員同時操作一個文件。團隊成員A操作完成后,將該文件提交到SVN上。此時,其他團隊成員的本地文件與SVN上的文件版本不一致。當團隊成員B操作完成並對文件進行提交操作時,就會產生沖突

SVN  沖突提示頁面

提交時產出沖突

SVN  沖突解決方案

遇到沖突時,需要update該文件。我們將看到三個帶問號的文件

 filename.mine

 filename.rOLDREV

 filename.rNEWREV

 

面對文件沖突,我們可以選擇以下兩種方式解決沖突

使用工具解決沖突

用revert放棄所做的修改

SVN  使用工具解決沖突

使用自帶工具,如圖所示

對比兩個版本的文件,解決沖突

工具中會列出兩個版本沖突的部分,並讓我們選擇使用哪個版本的內容

SVN  用revert放棄所做的修改

選擇SVN還原(revert) 放棄自己所做的修改

SVN  解決沖突之后

通過上面所說的方法,解決沖突后要選擇已解決的(resolved)

解決后,帶問號的三個文件將自動刪除

最后選擇commit提交到SVN

SVN  關於沖突的建議

修改文件之前,先進行一次update操作

修改完成后,及時commit,不要在本地停留過長時間

在多位團隊成員協作時,盡量修改自己撰寫的部分,盡量不要修改不屬於自己撰寫的部分

出現沖突很正常,可以通過前面的方法解決,不要相互覆蓋

SVN  其他SVN的功能

Export(導出)

     導出你需要的文件,導出后不在受SVN控制;而checkout檢出的文件仍受SVN控制;

Import(導入)

     將需要的文件導入到版本庫中;

Relocated(重新定位)

     當服務器上的版本庫目錄已經改變,我們可以把工作復本重新定位;

CleanUp(清理)

       遞歸的清理工作副本,刪除鎖定和保留的未完成操作,如果你得到工作副本已經鎖定的錯誤,運行這個命令刪除無用的鎖定,並將工作副本恢復到可用的狀態;

SVN  Subclipse的安裝步驟(Eclipse集成)

1. 幫助 > 軟件更新 >查找並安裝 

2. 選擇“要安裝的新功能部件” 選項並點擊Next。

3. 點擊“新站點”並且創建一遠程站點,

   名字:Subclipse

    URL:http://subclipse.tigris.org/update_1.2.x

4. 在結果安裝窗口中,把"Subeclipse in the Features"    選擇到安裝列表中,並且通過向導來開始安裝插件。

5. 完成這些之后,重新啟動Eclipse。 

SVN  在Eclipse下使用的圖標

SVN  Eclipse下使用的主要功能

將版本庫導入到SVN資源庫

 

 

 

Eclipse中小組的使用

 

比較對象

例如:

基本修訂版

資源庫中的最新內容

 

 

分支/標記

修訂版 

比較的對象是你選擇的版本號對應的項目

本地歷史記錄

 現修改的版本與本地修改的其他版本庫進行比較

Eclipse中的替換為

 

 

 

 

 

 

 

 

 

 

 

https://mp.weixin.qq.com/s/cDxn0ZTCH4ISgV6uf71sig


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM