SVN詳細的介紹和Idea中如何使用SVN

1、SVN介紹


SVN是Subversion的簡稱,是一個自由開源的版本控制系統。
Subversion將文件存放在中心版本庫裏,這個版本庫很像一個普通的文件服務器,不同的是,它可以記錄每一次文件和目錄的修改情況,這樣就可以藉此將數據恢復到以前的版本,並可以查看數據的更改細節早期版本控制使用的是CVS,後來SVN替代了CVS,隨着android興起,出現Git版本控制工具,後續我們會學到。

1.1 SVN基本概念

 

問題: 怎樣讓系統允許用戶共享信息,而不會讓他們因意外而互相干擾?
複製-修改-合併方案(Subversion默認的模式)
在這種模型裏,每一個客戶讀取項目配置庫建立一個私有工作副本——版本庫中文件和目錄的本地映射。用戶並行
工作,修改各自的工作副本,最終,各個私有的複製合併在一起,成爲最終的版本,這種系統通常可以輔助合併操
作,但是最終要靠人工去確定正誤。

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


1.2 SVN架構


Subversion支持Linux和Windows,更多是安裝在Linux下。
svn服務器有2種運行方式:獨立服務器和藉助apache運行。兩種方式各有利弊,用戶可以自行選擇。
svn存儲版本數據也有2種方式:BDB一種事務安全型表類型和FSFS一種不需要數據庫的存儲系統。
因爲BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點。

2、SVN使用

本章節主要介紹常用的svn工具,如window下svn服務器VisualSVN,客戶端工具TortoiseSVN以及idea svn插件的使用
SVN是一種集中式管理代碼的版本控制系統,原理就是把代碼都保存到一個固定的位置(倉庫),每次從這個位置拷貝更新代碼,進行編輯;再把修改後的代碼提交到該目錄中。多人協作開發也是如此。因此需要一個類似Oracle或者Mysql的服務器用於保存和管理庫文件(要保存的代碼等文件)的服務端——VisualSVN Server。還需要一個用戶的操作端,用於提交更新檢出代碼,常用的有idea的Svn插件,以及TortoiseSVN(小烏龜)。
SubVersion 官網:http://subversion.apache.org/

2.1 服務器端VisualSVN安裝與配置


2.1.1 VisualSVN下載

2.1.2 VisualSVN安裝與創建倉庫

在開始運行中錄入 services.msc

這個服務要開啓 在開始運行中查找visualSVN Server Manager就可以打開圖形化管理界面

2.1.3 VisualSVN創建工程目錄

2.1.4 VisualSVN 權限控制

創建用戶

創建組

分配權限

2.2 客戶端TortoiseSVN安裝與使用


TortoiseSVN是一個基於windows系統的svn客戶端圖形化界面.

2.2.1 Tortoise SVN下載

2.2.2 Tortoise SVN安裝

2.2.3 Tortoise SVN 常用操作

2.2.3.1 瀏覽倉庫

正常情況下,在瀏覽倉庫時會要求錄入username,與password 我們可以清空svn客戶端的緩存

2.2.3.2 checkout

注意:檢出後會有一個.svn隱藏目錄

 

2.2.3.3 add

2.2.3.4 commit

2.2.3.5 update

Update,它是更新操作,可以將svn服務器上的內容更新到本地

2.2.3.6 更新到歷史版本
查看當前日誌

也可以通過下面的方式來更新歷史版本

 

2.2.3.7 delete


標記刪除操作,本地文件會刪除,我們需要進行提交,才能真正從服務器刪除

2.2.3.8 導入與導出

Import將本地資源導入到svn服務器
Export導出項目,和checkout的區別,它不存在.svn隱藏文件

 

2.2.3.9 衝突問題與解決
多個用戶同時操作同一個文件時,就可能產生衝突情況。

這個衝突產生後如何解決,我們可以採用手動Merge,解決衝突後,重新commit.

HelloWorld.java 它是服務器上的文件與本地文件合併
HelloWorld.java.mine 本地修改後的文件
HelloWorld.java.r4 修改前的文件
HelloWorld.java.r5 對方修改後的文件

 

2.3 IDEA下 SVN 配置與使用

2.3.1 IDEA下svn配置

如果想要看IDEA下svn配置更加詳細的說明,可以查看 我的另一篇文章。

前提是我們的電腦上已經安裝了TortoiseSVN.

這樣安裝就完成了

1.Update Project 更新項目
2.Commit changes 提交項目上所有變化文件
3.Compare with the Same Repository Version 當前文件與服務器上該文件通版本的內容進行比較。如果當前編輯的文件沒有修改,則是灰色不可點擊。
4.Show history 顯示當前文件的歷史記錄
5.Revert 還原當前被修改的文件到違背修改的版本狀態下

1.Local Changes 本地修改過的文件都會出現在這裏
2.Repository svn倉庫所有提交記錄
3.Incoming 本地還沒有更新的別人提交的代碼

 

2.3.2 IDEA 下SVN使用

2.3.2.1 share project

 

2.3.2.2 checkout

 

2.3.2.3 add commit update

 

2.3.2.4 ignored

 

2.3.2.5 解決衝突

 

 

3. SVN規範


3.1 SVN目錄規範

在visualSVN中創建倉庫時,可以選擇svn目錄結構

Trunk 主幹目錄,此目錄下的文件爲基準文件
Branches 用於開發的分支目錄
Tags 用於發佈的版本目錄
假設有一個項目OA,我們完成了1.0版本,這時就可以打一個tags,後續我們在OA項目上添加一個新的模塊(及時通訊),我們就可以開一個分支,又有一個公司需要在我們OA基礎上添加財務管理模塊,我們又可以打一個分支。我們後續針對OA的1.0版本在升級,我們不需要原來附加功能,就可以在原來的主幹上繼續開發,形成OA2.0版本,開發完成後就可以在打一個tags。

3.2分支與標記


3.2.1.分支或標記規範

分支的定義規則: Project name+日期時間+功能點 Tags的定義規則 Project name+版本號 版本號定義爲三段數字編號 xxx.xxx.xxx 第一個:革命性的產品升級版 第二個:新功能版 第三個:修正bug

Tags一般是隻讀,它代表的是發佈的版本,所以我們不要進行改變。

3.3 主幹與分支或標記的合併

3.3.1 主幹合併到分支


首先保證主幹是最新的(先update),在分支這邊進行操作

介紹到這裏,這篇文章就先告一段落了。

 

如果需要轉載,請註明出處,謝謝!本文爲博主原創文章,博客地址:https://blog.csdn.net/weixin_44299027

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章