svn命令行操作
- 查看版本库下的文件和目录列表
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" |