SVN使用指南【工作培訓版】

SVN使用指南【工作培訓版】

2017-12-19 奮鬥蒙 Java幫幫

SVN使用指南【工作培訓版】

軟件下載點擊閱讀原文

爲什麼要使用配置管理

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

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

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

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

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

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


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

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

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



2、配置庫( Repository )

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

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

 


3、工作副本(WorkSpace)

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


SVN工作模式

複製-修改-合併方案(Subversion默認的模式)


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

鎖定-修改-解鎖方案


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


SVN安裝



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

目錄結構

SVN使用流程

SVN使用圖標說明

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

當我們開始編輯一個文件後,圖標將變成紅色感嘆號。通過這種方式,可以很容易地看出我們對哪些文件進行了修改操作,但是還沒有提交到版本庫中;

如果在提交的過程中出現了衝突,圖標將變成黃色感嘆號。

如果我們擁有了一個文件的鎖,並且Subversion狀態是正常,這個重載圖標將提醒我們:如果不使用該文件的話,請進行釋放鎖操作,允許其他成員提交對該文件的修改。 

這個圖標表示當前文件夾下的某些文件或文件夾已經被計劃從版本控制中刪除,或是該文件夾下某個受控的文件丟失了。

加號告訴我們有一個文件或是目錄已經被計劃加入版本控制。 

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控制的文件被標記爲小黃桶;

修改過的文件都被標記上一個黑色星號;

未受版本控制的文件被標記爲問號;

SVN  Eclipse下使用的主要功能

將版本庫導入到SVN資源庫

將新建項目導入到版本庫

Eclipse中小組的使用

比較對象

例如:


基本修訂版

資源庫中的最新內容


分支/標記

修訂版 

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

本地歷史記錄

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

Eclipse中的替換爲

注:與比較對象的應用一樣,只是這是替換.


發佈了73 篇原創文章 · 獲贊 233 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章