checkout
從 server 拉來本地, 簡寫 co
checkout URL[@REV]... [PATH]
例:
svn co svn+ssh://repo/home/svn/mybranch mybranch
直接 checkout 指定版本
svn co -r version svn+ssh://repo/home/svn/mybranch mybranch
commit
將本地的修改推到 server, 簡寫 ci
commit [PATH...]
例:
svn ci file1 file2 path1/file3
copy
複製成新的 branch, 簡寫 cp
copy SRC[@REV]... DST
例:
svn cp svn+ssh://repo/home/svn/mybranch svn+ssh://repo/home/svn/newbranch
status
檔案狀態, 簡寫 st
svn st [PATH...]
例:
svn st
merge
合併,
svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]
例: 把 trunk 的修改合併進來.
svn merge svn+ssh://repo/trunk
例: 退回 oldver. 完成後重新 commit. 可以保留原先變更的版本參考
svn merge -r 123:115 svn+ssh://repo/develop
例: 檔案退回 oldver. 完成後重新 commit 可以保留原先變更的版本參考
svn merge -r 123:115 path/filename
update
更新,
svn update [PATH...]
例:
svn up
例:
svn up -r 115
cherry-pick
摘櫻桃
svn merge -r N:M SOURCE
例: (從 repo/develop 摘取從 r98 到 r99 所做的變更)
svn merge -r 98:99 svn+ssh://repo/develop
svn merge 出現下列訊息:
svn local file obstruction incoming file add upon merge
這是因為本地跟merge源個別 add 檔案造成的, 解決方法:
先手動比較兩個版本的差異, 並將檔案修改到最終想要的版本. 然後執行
svn resolve --accept working <file>
意思是接受 working 的版本來解決衝突.