Linux下版本控制器(SVN) -命令行客戶端

image.png

@[toc]

進階知識-Linux下版本控制器(SVN)

5、命令行客戶端

5.1 創建兩個工作區目錄模擬兩個開發人員

mkdir -p /root/workspace/harry
mkdir -p /root/workspace/sally

5.2 檢出

  • 作用:完整下載版本庫中的全部內容。

  • 命令:

    svn checkout svn://192.168.70.140/pro_oa ./
    
  • 附加效果

    • 在指定目錄下創建.svn目錄
    • 保存本地目錄和文件狀態信息,用來和SVN服務器進行交互
  • 工作副本

    • .svn所在的目錄
    • 版本控制相關操作都需要在工作副本目錄下執行。例如:提交、更新等等這樣的操作。
    • 為了保證工作副本能夠正常和服務器進行交互,請不要刪除或修改.svn目

錄中的內容。

5.3 添加

  • SVN要求提交一個新建的文件前先把這個文件添加到版本控制體系中。

    svn add文件名
    

5.4 提交

  • 要求1:附加日志信息

    • 日志信息相當于寫Java代碼時的注釋,用來標記本次操作所做的修改。
    svn commit -m "xxx" [文件名]
    
  • 要求2:必須具備相應的權限

    • 使用文本編輯器打開版本庫根目錄/conf/svnserve.conf文件
image.png
[root@rich harry]# svn commit hello.txt
svn:提交失敗(細節如下):svn:“/root/workspace/harry/hello.txt”尚未納入版本控制
[root@rich harry]# svn add hello.txt
A hello.txt
[root@rich harry]# svn commit hello.txt
svn:提交失敗(細節如下):
svn:無法使用外部編輯器獲得日志信息;考慮設置環境變量 $SVN_EDITOR,或者使用--message (-m)或 --file (-F)選項
svn:沒有設置 SVN_EDITOR,VISUAL或 EDITOR環境變量,運行時的配置參數中也沒有“editor-cmd”選項
[root@rich harry]# svn commit -m "My first commit" hello.txt
svn:提交失敗(細節如下):
svn:認證失敗
[root@rich harry]# svn commit -m "My first commit" hello.txt
增加 hello.txt
傳輸文件數據.
提交后的版本為 1。

5.5 查看服務器端文件內容

[root@rich harry]# svn list svn://192.168.70.140/pro_oa
good.log
hello.txt

5.6 更新操作

  • 作用:把服務器端文件所產生的所有修改下載到本地
命令:svn update [文件名]

5.7 沖突

5.7.1 過時的文件

  • 概念:在一個相對服務器端版本來說是舊版本的基礎上進行了修改的文件。

  • 要求:所有過時的文件都必須先執行更新操作,更新后在最新版基礎上修改的

文件才允許提交。

5.7.2 沖突的產生

  • 條件1:本地當前編輯的文件已經過時。

  • 條件2:從服務器端更新下來的修改和本地的修改在“同文件同位置”不一致。

5.7.3 沖突的表現

  • 文件內
image.png
  • 目錄內
image.png

xxx.mine文件:發生沖突時本地文件內容
xxx.r[小版本號]文件:發生沖突前文件內容
xxx.r[大版本號]文件:發生沖突時服務器端文件內容

5.7.4 沖突的手動解決

  • 第一步:刪除沖突發生時產生的三個多余文件

  • 第二步:刪除沖突文件內多余的符號

  • 第三步:把文件編輯到滿意的狀態

  • 第四步:提交

5.7.5 沖突的半自動解決

  • 設置SVN_EDITOR環境變量
image.png
vim /etc/profile
-------------------------------------------
SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR
-------------------------------------------
source /etc/profileecho $SVN_EDITOR
  • 解決的過程

    • 使用e選項進入文件內容編輯界面
image.png
  • 進入vim編輯器編輯文件內容
image.png
  • 編輯完成后使用r選項標記為已解決
image.png

5.7.6 減少沖突的發生

  • 盡可能在修改文件前先進行更新操作,盡量在最新版基礎上修改文件內容。

  • 盡量減少多人修改同一個文件的可能性。

  • 加強團隊成員之間的溝通。

本人其他相關文章鏈接

1.Linux下版本控制器(SVN) -服務器端環境搭建步驟
2.Linux下版本控制器(SVN) -命令行客戶端

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容