SVN筆記_指令、狀態與衝突處理

By
Advertisement
僅記錄自己在Linux上比較常用及遇到的

指令

  • svn status(st):與最近一次commit過的內容比較現在clint的檔案有什麼變化(以狀態顯示)
  • svn update:將server的檔案update到client,如有需要會產生衝突處理的訊息
  • svn diff:比較client與server的檔案差別
    • svn diff
      svn diff folder
      svn diff file
  • svn add:將client上的檔案或目錄上傳至server(上傳後須commit才會真正進入SVN的版本管控清單
    • svn add folder
      svn add file
  • svn commit(ci):將目前client有修改過的檔案commit至SVN
    • svn ci
      svn ci file1 file2 file3

狀態

  • ?:未在SVN版本控制清單內的檔案
  • A:client新增的檔案
  • M:client修改過的檔案
  • C:檔案跟server上的不同,兩者merge失敗(通常就是尚待需要衝突處理的檔案)
  •   註:有需要衝突處理時會產生 file.mine 檔以及 file.r00001(版本號)檔
  •     自行將檔案修改merge後並rm -f file.mine file.r00001,這時狀態就會變回M
  • D:client移除了的檔案
  • U:server上的有更新過
  • G:client的有更新過,server的也有更新,兩者merge成功。

衝突處理

Conflict discovered in 'include/typedef.h'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,        (s) show all options: p

建議使用(p) postpone
p會產生與衝突相關的檔案
  • file.txt
  • file.txt.mine
  • file.txt.r00001
  • file.txt.r00002
.mine為 client 端原始的檔案
.r00001及.r00002是server中與client發生衝突的檔案與版本序
client端的原始檔會被註解衝突需要merge的部分

值得注意的是,當自行merge完成並刪掉這些因衝突所衍生出來的檔案後,SVN標記的衝突狀態C即會更改為M若這些檔案沒有刪掉,則是會一直維持C狀態。

0 意見:

張貼留言

技術提供:Blogger.

Latest Photos

Join the Team

Blogger news

Popular Posts