SVN使用【介紹SVN、快速入門、解決衝突】

什麼是SVN

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

Svn是一種集中式文件版本管理系統。集中式代碼管理的核心是服務器,全部開發者在開始新一天的工做以前必須從服務器獲取代碼,而後開發,最後解決衝突,提交。markdown

集中式文件版本控制器:將全部的文件都交由服務器來進行統一的管理。既然是有服務器的,那麼就須要聯網進行操做了。svn

爲何要使用SVN

咱們寫一個項目通常都是一個團隊來寫,若是咱們沒有用SVN的話,那麼咱們只能在團隊中互相拷貝對方的代碼來完成咱們的項目學習

SVN還有以下的好處:spa

  • 輕鬆比較不一樣版本間的細微差異【修改了代碼,就有版本號,還能知道修改先後的數據】
  • 及時瞭解團隊中其餘成員的進度【若是沒有把代碼提交到服務器中,就是作得比較慢了】
  • 廣域網共享【連上局域網就能夠代碼共享了】
  • 協同工做,大大提升團隊工做效率

快速瞭解SVN

配置庫

在SVN中有配置庫這麼一個概念,那它是什麼東東呢??開放源代碼

它儲存全部的數據,配置庫按照文件樹形式儲存數據命令行

  • 包括目錄和文件

任意數量的客戶端能夠鏈接到配置庫,讀寫這些文件.而且能夠添加讀寫日誌,有權限的用戶很方便的看到這些修改版本控制

工做副本

咱們從上面已經知道了,咱們能夠從配置庫中獲得想要的文件。那麼咱們要把文件從配置庫下載下來。這個下載下來的區域就是工做副本日誌

這個工做副本其實就是咱們工做的區域,咱們對那些文件修改完,就可以再次提交到配置庫中了code

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,不要在本地停留過長時間
  • 在多位團隊成員協做時,儘可能修改本身撰寫的部分,儘可能不要修改不屬於本身撰寫的部分
  • 出現衝突很正常,能夠經過前面的方法解決,不要相互覆蓋

工做流程圖

這裏寫圖片描述

相關文章
相關標籤/搜索