指令
- svn status(st):與最近一次commit過的內容比較現在clint的檔案有什麼變化(以狀態顯示)
- svn update:將server的檔案update到client,如有需要會產生衝突處理的訊息
- svn diff:比較client與server的檔案差別
- svn add:將client上的檔案或目錄上傳至server(上傳後須commit才會真正進入SVN的版本管控清單)
- svn commit(ci):將目前client有修改過的檔案commit至SVN
- svn diff
- svn diff folder
- svn diff file
- svn add folder
- svn add file
- 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會產生與衝突相關的檔案
.r00001及.r00002是server中與client發生衝突的檔案與版本序
client端的原始檔會被註解衝突需要merge的部分
- file.txt
- file.txt.mine
- file.txt.r00001
- file.txt.r00002
.r00001及.r00002是server中與client發生衝突的檔案與版本序
client端的原始檔會被註解衝突需要merge的部分
值得注意的是,當自行merge完成並刪掉這些因衝突所衍生出來的檔案後,SVN標記的衝突狀態C即會更改為M若這些檔案沒有刪掉,則是會一直維持C狀態。
0 意見:
張貼留言