title: svn命令使用手冊
date: 2019-08-16 10:09:29
categories: svn
tags:
- 查看版本庫下的文件和目錄列表
svn list(ls) svn://***** --verbose
- 查看當前分支從哪個支線創建而來
svn log -v -r 1:HEAD --limit 1 --stop-on-copy
- 查看當前工作副本所在URL
svn info
- 切換分支
svn switch svn://***(新分支)
svn switch svn://*** svn://***本地目錄當前分支
svn switch http://localhost/test/456 . //(原為123的分支)當前所在目錄分支到localhost/test/456
- 新建、刪除分支標簽
svn copy base_branch new_branch -m "make B branch"
svn rm (分支)URL -m "commit log"
svn cp . (tag)URL
svn rm (tag)URL -m "commit log"
- 同步代碼到最新
svn update(up)
- 查看當前工作副本的狀態
svn status(st)
- 加鎖/解鎖
svn lock -m “加鎖備注信息文本“ [--force] 文件名
svn unlock 文件名
- 合並分支
#查找創建分支時的版本號reversion
svn log [-q] --stop-on-copy
svn merge -r 分支版本號:HEAD 分支的URL --dry-run #HEAD為當前主干上的最新版本
svn merge url -r xxxx:yyyy ./ (將url指定的code的xxxx版本到yyyy版本,merge到本地(注意:該方式不包括xxxx版本!!))
svn merge url -r HEAD ./
svn merge url -c xxxx ./ (把svn 版本號為xxxx的改動合到你的本地)
svn st | grep ^C # 查找合並時的沖突文件,手工解決沖突
svn resolved filename # 告知svn沖突已解決
svn commit -m "" # 提示合並后的版本
有效選項:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范圍)
版本參數可以是如下之一:
NUMBER 版本號
'{' DATE '}' 在指定時間以后的版本
'HEAD' 版本庫中的最新版本
'BASE' 工作副本的基線版本
'COMMITTED' 最后提交或基線之前
'PREV' COMMITTED的前一版本
-c [--change] ARG : 在ARG版本(如同 -r ARG-1:ARG)作的修改
如果ARG為負數則等價於 -r ARG:ARG-1
-N [--non-recursive] : 過時;嘗試 --depth=files 或 --depth=immediates
--depth ARG : 受深度參數 ARG(“empty”,“files”,“immediates”,或“infinity”) 約束的操作
-q [--quiet] : 不打印信息,或只打印概要信息
--force : 強制操作運行
--dry-run : 嘗試操作但沒有修改
--diff3-cmd ARG : 使用 ARG 作為合並命令
--record-only : 標記版本為已合並(使用 -r 參數)
-x [--extensions] ARG : 缺省: “-u”。當 Subversion 調用外部比較程序時,ARG 直接傳給它。但是當
Subversion 使用缺省的內置比較實現,或者正
顯示追溯時, ARG 可以是:
-u (--unified):
輸出三行統一上下文。
-b (--ignore-space-change):
忽略空白數量的修改。
-w (--ignore-all-space):
忽略所有的空白。
--ignore-eol-style:
忽略行尾樣式的改變。 -p (--show-c-function):
在比較輸出中顯示 C 函數名稱。
--ignore-ancestry : 合並時忽略原始信息
--accept ARG : 指定自動解決沖突動作
('postpone', 'base', 'mine-conflict',
'theirs-conflict', 'mine-full', 'theirs-full',
'edit', 'launch')
--reintegrate : 批量合並所有源 URL 中未合並的修改
- 提交修改
svn add test.php <- 添加test.php
svn add *.php <- 添加當前目錄下所有的php文件
svn commit -m “添加我的測試用test.php“ test.php
SVN 常用命令一覽表
https://www.kancloud.cn/i281151/svn/197160
http://blog.sina.com.cn/s/blog_567e650201012jmq.html
命令 | 功能 | 使用格式 |
---|---|---|
checkout | 檢出 | svn co URL |
up | 更新到當前URL的末端 | svn up |
switch | 更新到某一tag/branch | svn switch (tag/分支)URL |
add | 增加 | svn add 文件名 |
rm | 刪除文件 | svn rm 文件名 |
刪除目錄 | svn rm 目錄名 | |
diff | 與base版本(最后檢出或者更新到的版本)對比 | svn diff |
與版本庫中最新版本對比 | svn diff -r head | |
當前工作副本,兩個版本之間對比 | svn diff -r reversion1:reversion2 | |
版本庫中任意兩個tag做對比 | svn diff (tag1)URL (tag2)URL | |
ci | 提交 | svn ci -m "commit log" |
log | 查看當前工作副本log | svn log |
只查看指定版本的log | svn log -r | |
打印log所有附加信息 | svn log -v | |
查看當前tag/branch版本詳情 | svn log --stop-on-copy -v | |
info | 查看當前工作副本所在URL | svn info |
status | 查看工作副本的狀態 | svn st |
查看文件的taglist | svn命令不支持,可執行cs taglist | |
tag | 新增tag | svn cp . (tag)URL |
刪除tag | svn rm (tag)URL -m "commit log" | |
覆蓋已經存在的tag | 不支持 | |
分支開發 | 創建branch | svn cp (基線版本)URL (分支)URL -m "commit log" |
刪除branch | svn rm (分支)URL -m "commit log" | |
同步 | svn co (主干)URL | |
cd ~/wc | ||
svn merge (主干)URL (待同步tag)URL | ||
svn ci -m "commit log" | ||
svn cp (主干)URL (以_PD_BL_MAIN結尾的tag)URL -m"commit log" | ||
合並 | svn co (合並目標)URL | |
cd ~/wc | ||
svn merge (基線版本tag)URL (上線tag)URL | ||
svn ci -m "commit log" | ||
svn cp (合並目標)URL (上線tag_MERGE_的tag對應)URL -m"commit log" |