1. 程式人生 > >SVN就是這麽簡單

SVN就是這麽簡單

權限 技術文章 另一個 操作 block 同學 local pla 本地

什麽是SVN

SVN全稱:Subversion,是一個開放源代碼的版本控制系統

Svn是一種集中式文件版本管理系統。集中式代碼管理的核心是服務器,所有開發者在開始新一天的工作之前必須從服務器獲取代碼,然後開發,最後解決沖突,提交。

集中式文件版本控制器:將所有的文件都交由服務器來進行統一的管理。既然是有服務器的,那麽就需要聯網進行操作了。

為什麽要使用SVN

我們寫一個項目一般都是一個團隊來寫,如果我們沒有用SVN的話,那麽我們只能在團隊中互相拷貝對方的代碼來完成我們的項目

SVN還有如下的好處:

  • 輕松比較不同版本間的細微差別【修改了代碼,就有版本號,還能知道修改前後的數據】
  • 及時了解團隊中其他成員的進度【如果沒有把代碼提交到服務器中,就是做得比較慢了】
  • 廣域網共享【連上局域網就可以代碼共享了】
  • 協同工作,大大提高團隊工作效率

快速了解SVN

配置庫

在SVN中有配置庫這麽一個概念,那它是什麽東東呢??

它儲存所有的數據,配置庫按照文件樹形式儲存數據

  • 包括目錄和文件

任意數量的客戶端可以連接到配置庫,讀寫這些文件.並且可以添加讀寫日誌,有權限的用戶很方便的看到這些修改

工作副本

我們從上面已經知道了,我們可以從配置庫中得到想要的文件。那麽我們要把文件從配置庫下載下來。這個下載下來的區域就是工作副本

這個工作副本其實就是我們工作的區域,我們對那些文件修改完,就能夠再次提交到配置庫中了

SVN命令

我們簡單來學習幾條SVN的命令,SVN有圖形界面的功能,因此命令學習也不是必須的。了解一下....


    ---創建服務器端版本庫
    svnadmin create 版本庫路徑 
    
    ---啟動SVN服務器端
    svnserve -d -r 版本庫路徑 
    
    ---在系統服務中註冊svn服務器
    sc create svn binPath= "C:\Program Files\TortoiseSVN\bin\svnserve.exe --service -r D:\itcast\svnserver\20150118svn" DisplayName= "svn服務"
    
    ---刪除系統服務中的 服務
    sc delete 服務ID

如果啟動SVN服務器的時候,不會報錯就是正常開啟了

技術分享圖片


分配權限

在我們配置庫中找到conf文件夾下的svnserve.conf配置文件。將下面的三行的註釋去掉

技術分享圖片

分配用戶

找到conf文件下的passwd,配置用戶

技術分享圖片

常見的子命令

  • import:將未納入版本控制器的文件或目錄提交到版本庫中(僅執行一次)
  • checkout: 從版本庫標簽中出工作副本
  • revert: 將工作副本文件恢復到指定版本
  • update: 將版本庫的修改合並到工作副本中
  • commit:把工作副本的修改提交到版本庫。

使用SVN

添加數據到SVN

創建配置庫,我們可以使用命令行方式,也可以使用UI點擊的方式。這裏我就直接使用UI的方式了。

技術分享圖片

隨後,開啟我們的SVN服務

技術分享圖片

把一個文件夾放置到配置庫中,交由SVN管理

技術分享圖片

技術分享圖片

在SVN中查看我們添加的內容:

技術分享圖片

查看具體的日誌
技術分享圖片

標識得非常清晰:

技術分享圖片


從SVN導出數據

把SVN的數據導出到用戶中。

技術分享圖片

導出後:這個local文件夾其實就是我們的工作副本!

技術分享圖片


修改SVN導出後的數據、再添加回SVN

我在工作副本中添加了一個文件
技術分享圖片

添加到SVN中:
技術分享圖片

隨後,變成了一個藍色的圖標+號,我們提交。

技術分享圖片

技術分享圖片


解決沖突

我們可能會出現這樣的一個問題:我們的SVN是一個團隊正在開發。但是在commit之前,有人就把我正在編輯的文件給修改了。於是當我在提交的時候就出現了沖突【當前的數據不一致,沖突了】

localhost2用戶導出了SVN的數據,並且修改了文件:

技術分享圖片

另一個用戶localhost也在修改該文件,但是它沒有做updata操作。並不知道該文件已經被修改了。

技術分享圖片

當他修改完,想要更新到SVN中的時候,發現沖突了。

技術分享圖片

面對沖突,我們有兩種方案:

  • 放棄本次的修改
  • 查看沖突的內容是什麽,當查看完再決定要哪個的數據,或者是合並起來。

技術分享圖片

我們進去沖突修改的頁面,決定要的是哪一行的數據

技術分享圖片

技術分享圖片

最後修改完,點擊保存操作就行了。

技術分享圖片


關於沖突的建議

  • 修改文件之前,先進行一次update操作
  • 修改完成後,及時commit,不要在本地停留過長時間
  • 在多位團隊成員協作時,盡量修改自己撰寫的部分,盡量不要修改不屬於自己撰寫的部分
  • 出現沖突很正常,可以通過前面的方法解決,不要相互覆蓋

工作流程圖

技術分享圖片


如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章,想要獲取更多的Java資源的同學,可以關註微信公眾號:Java3y

SVN就是這麽簡單