title: 版本控制之SVN:SVN for Linux客户端命令详解
categories: Linux
tags:
- SVN
timezone: Asia/Shanghai
date: 2019-02-19
环境
[root@centos181001 help]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@centos181001 help]# svnserve --version
svnserve,版本 1.7.14 (r1542130)
编译于 Apr 11 2018,02:40:28
附录:svn命令格式
add: 把文件和目录纳入版本控制,通过调度加到版本库。它们会在下一次提交时加入。
用法: add 路径...
有效选项:
--targets ARG : 传递文件 ARG 内容为附件参数
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-q [--quiet] : 不打印信息,或只打印概要信息
--force : 强制操作运行
--no-ignore : 忽略默认值和 svn:ignore 属性
--auto-props : 启用自动属性
--no-auto-props : 关闭自动属性
--parents : 增加中间父目录
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
blame (praise, annotate, ann): 输出指定文件或URL的追溯内容,包含版本和作者信息。
用法: blame 目标[@版本]...
如果指定了版本,将从指定的版本开始查找。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-v [--verbose] : 打印附加信息
-g [--use-merge-history] : 从合并历史使用/显示额外信息
--incremental : 给予适合串联的输出
--xml : 输出为 XML
-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 函数名称。
--force : 强制操作运行
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
cat: 输出指定文件或URL的内容。
用法: cat 目标[@版本]...
如果指定了版本,将从指定的版本开始查找。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
changelist (cl): 耦合(或解耦)命名文件与修改列表 CLNAME。
使用: 1. changelist CLNAME PATH...
2. changelist --remove PATH...
有效选项:
-q [--quiet] : 不打印信息,或只打印概要信息
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--remove : 删除修改列表耦合
--targets ARG : 传递文件 ARG 内容为附件参数
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
checkout (co): 从版本库签出工作副本。
使用: checkout URL[@REV]... [PATH]
如果指定 REV,那么它确定了从 URL 首先查找的版本。
如果省略路径参数,则 URL 最末尾的目录名作为目标目录名。如果指定多个 URL,
则依次将其签出到 PATH 的子目录中,子目录名就是 URL 最末尾的目录名。
如果使用了 “--force” 选项,在工作副本中未版本控制的障碍路径,不会自动导
致签出失败。 如果障碍路径与版本库中的对应路径类型相同(文件或目录),它将成
为受版本控制的路径,但是内容不改变。它意味着障碍路径的孩子,如果也是障碍路
径,那么也会受版本控制。对于障碍路径中的文件,如果与版本库内的不同,将视为工
作副本发生本地修改。版本库中的所有属性都应用于障碍路径。
参见 “svn help update” 以获取报告执行动作的字符列表。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-q [--quiet] : 不打印信息,或只打印概要信息
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--force : 强制操作运行
--ignore-externals : 忽略外部项目
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
cleanup: 递归清理工作副本,删除锁,继续未完成操作,等等。
用法: cleanup [路径...]
有效选项:
--diff3-cmd ARG : 使用 ARG 作为合并命令
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
commit (ci): 把工作副本的修改提交到版本库。
用法: commit [路径...]
必须提供日志消息,但它可以是空的。如果没有指定 --message 或 --file
选项,编辑器会被启动。如果有目标是锁定的或者包含锁定条目,则在成功
提交后会被解锁。
有效选项:
-q [--quiet] : 不打印信息,或只打印概要信息
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--targets ARG : 传递文件 ARG 内容为附件参数
--no-unlock : 不要解锁目标
-m [--message] ARG : 指定日志信息ARG
-F [--file] ARG : 从文件ARG读取日志信息
--force-log : 强制校验日志信息资源
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--encoding ARG : 将ARG的值视为字符编码
--with-revprop ARG : 在新版本设置版本属性 ARG
使用格式 name[=value]
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
--keep-changelists : 不要在提交后删除修改列表
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
copy (cp): 在工作副本或版本库中复制数据,保留历史。
用法: copy SRC[@REV]... DST
当复制多个源时,它们作为 DST 的子节点增加, DST 必须是目录。
SRC 和 DST 可以是工作副本路径(WC)或版本库地址(URL):
WC -> WC: 复制和调度增加(包含历史)
WC -> URL: 立即提交工作副本到版本库
URL -> WC: 检出 URL 到工作副本,调度增加
URL -> URL: 完全服务器端复制;一般用于分支和标签
所有 SRC 必须是同一类型。
警告:为了与旧版本的 Subversion 兼容,使用两个工作副本复制(WC -> WC)的
操作不会与版本库通信。同样地,在缺省情况下,不能从复制源到目的地传播合
并跟踪信息。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-q [--quiet] : 不打印信息,或只打印概要信息
--ignore-externals : 忽略外部项目
--parents : 创建中间目录
-m [--message] ARG : 指定日志信息ARG
-F [--file] ARG : 从文件ARG读取日志信息
--force-log : 强制校验日志信息资源
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--encoding ARG : 将ARG的值视为字符编码
--with-revprop ARG : 在新版本设置版本属性 ARG
使用格式 name[=value]
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
delete (del, remove, rm): 从版本库中删除文件和目录。
用法: 1、delete PATH...
2、delete URL...
1、每个 PATH 指定的项目会被调度到下次提交时从版本库删除。除非给出
--keep-local 参数,工作副本中没有提交的文件和目录会被立即删除。
如果 PATH 未版本控制或者包含未版本控制的项目,或者包含已修改的
项目,那么仅当给出 --force 或 --keep-local 参数时这些项目才会被
删除。
2、每个 URL 指定的项目会通过立即提交从版本库中删除。
有效选项:
--force : 强制操作运行
-q [--quiet] : 不打印信息,或只打印概要信息
--targets ARG : 传递文件 ARG 内容为附件参数
-m [--message] ARG : 指定日志信息ARG
-F [--file] ARG : 从文件ARG读取日志信息
--force-log : 强制校验日志信息资源
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--encoding ARG : 将ARG的值视为字符编码
--with-revprop ARG : 在新版本设置版本属性 ARG
使用格式 name[=value]
--keep-local : 在工作副本中保留路径
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
diff (di): 显示两个版本或路径的差异。
用法: 1. diff [-c M | -r N[:M]] [TARGET[@REV]...]
2. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \
[PATH...]
3. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]
1、显示版本 REV 中 TARGET 在两个不同的版本之间的差异。TARGET 要么全是
工作副本路径,要么全是 URL。如果 TARGET 是工作副本路径,N 默认为
BASE,M 默认为工作副本;如果 TARGET 是 URL,N 必须指定, M 默认为 HEAD。
“-c M” 等价于 “-r M-1:M”,“-c -M” 等价于 “-r M:M-1”。
2、显示新旧版本中对应目标的差异。PATH 是相对于新旧目标的相对路径,
它限制只输出这些路径上的差异。新旧目标可以是工作副本路径或地址 URL[@REV]。
新目标默认与旧目标相同,OLDREV 默认为 N,NEWREV 默认为 M。
3、“svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]” 的简写。
使用不加参数的 “svn diff” 显示工作副本中的本地修改。
有效选项:
-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
--old ARG : 使用 ARG 作为旧目标
--new ARG : 使用 ARG 作为新目标
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--diff-cmd ARG : 使用 ARG 作为比较命令
--internal-diff : 覆盖配置文件中指定的 diff-cmd
-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 函数名称。
--no-diff-deleted : 不要输出删除文件造成的差异
--show-copies-as-adds : 请不要将复制或移动的文件与其源文件比较
--notice-ancestry : 比较差异时提示原始信息
--summarize : 显示结果的概要
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
--force : 强制操作运行
--xml : 输出为 XML
--git : 使用 git 的扩展差异格式
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
export: 产生一个无版本控制的目录树副本。
用法: 1、export [-r REV] URL[@PEGREV] [PATH]
2、export [-r REV] PATH1[@PEGREV] [PATH2]
1、从 URL 指定的版本库,导出一个干净的目录树到 PATH。如果有指定
REV 的话,内容即为该版本的,否则就是 HEAD 版本。如果 PATH
被省略的话,URL的最后部分会被用来当成本地的目录名称。
2、在工作副本中,从指定的 PATH1 导出一个干净的目录树到 PATH2。如果
有指定 REV 的话,会从指定的版本导出,否则从工作副本导出。如果
PATH2 被省略的话,PATH1 的最后部分会被用来当成本地的目录名称。
如果没有指定 REV 的话,所有的本地修改都保留,但是未纳入版本控制
的文件不会被复制。
如果指定了 PEGREV ,将从指定的版本本开始查找。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-q [--quiet] : 不打印信息,或只打印概要信息
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--force : 强制操作运行
--native-eol ARG : 使用非标准的 EOL 标记
系统中立的文件标记 svn:eol-style 属性取值为 “native”。
ARG 可以是以下之一“LF”,“CR”,“CRLF”
--ignore-externals : 忽略外部项目
--ignore-keywords : 不要展开关键字
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
import: 将未纳入版本控制的文件或目录树提交到版本库。
用法: import [PATH] URL
递归地提交 PATH 的副本至 URL。
如果省略 PATH,则默认为 “.”。
父目录会根据需要在版本库内创建。
如果 PATH 是目录,则其下的内容直接加入到 URL 指定的位置内。
如果使用了 “--force”,那么不能纳入版本控制的项目,例如设备文件,管道等,会被忽略。
有效选项:
-q [--quiet] : 不打印信息,或只打印概要信息
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--auto-props : 启用自动属性
--force : 强制操作运行
--no-auto-props : 关闭自动属性
-m [--message] ARG : 指定日志信息ARG
-F [--file] ARG : 从文件ARG读取日志信息
--force-log : 强制校验日志信息资源
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--encoding ARG : 将ARG的值视为字符编码
--with-revprop ARG : 在新版本设置版本属性 ARG
使用格式 name[=value]
--no-ignore : 忽略默认值和 svn:ignore 属性
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
info: 显示本地或远程条目的信息。
用法: info [TARGET[@REV]...]
显示每个 TARGET 的信息 (默认: “.”)。
TARGET 可以是工作副本中的路径或版本库中的 URL。REV 指定从哪个
版本开始查找目标。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--targets ARG : 传递文件 ARG 内容为附件参数
--incremental : 给予适合串联的输出
--xml : 输出为 XML
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
list (ls): 列出版本库中的目录内容。
用法: list [TARGET[@REV]...]
显示版本库中文件和子目录列表。如果 TARGET 是工作副本路径,那么操作对应的
版本库URL指定的TARGET。REV指定从在哪个版本查找TARGET。
TARGET默认是“.”,表示当前工作目录对应的版本库URL。
使用 --verbose 时,每个条目会显示以下额外信息:
最后一次提交的版本号码
最后一次提交的作者
如果被锁定,显示字母“O”。(使用“svn info URL”查看详细信息)
大小 (以字节为单位)
最后一次提交的日期与时间
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-v [--verbose] : 打印附加信息
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--incremental : 给予适合串联的输出
--xml : 输出为 XML
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
lock: 锁定版本库中的路径,使得其他用户不能向其提交修改。
用法: lock TARGET...
使用 --force 选项可以从其他用户或工作副本窃取到锁。
有效选项:
--targets ARG : 传递文件 ARG 内容为附件参数
-m [--message] ARG : 指定加锁注释ARG
-F [--file] ARG : 从文件 ARG 读取加锁注释
--force-log : 强制校验锁定注释源
--encoding ARG : 将ARG的值视为字符编码
--force : 强制操作运行
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
log: 显示一组版本与/或路径的日志信息。
用法: 1、log [PATH][@REV]
2、log URL[@REV] [PATH...]
1、显示与本地 PATH (默认: “.”) 对应的 URL 的日志信息。如果指定了 REV,版本
范围是 REV:1。默认的版本范围是 BASE:1,因为 URL 未必在 HEAD 中存在。
2、显示 URL 中 PATH (默认: “.”) 的日志信息。如果指定了 REV,版本范围是
REV:1。否则版本范围是 HEAD:1。
可以指定多个 “-c” 或 “-r” 选项 (但是不允许同时使用 “-c” 和 “-r” 选项),以及
混合使用前向和后向范围。
使用 -v 时,在日志信息中显示受影响的路径名。
使用 -q 时,不显示日志信息主体 (请注意,它可与 -v 并存)。
每条日志信息只会显示一次,即使指定了此版本涉及到的多个路径。默认日志信息
会追溯复制历史;使用 --stop-on-copy 可以关闭这种行为,这可以用来找出分支点。
选项 --depth 只能与选项 --diff 组合使用,用来限制在指定路径上显示差异的范围。
范例:
svn log
svn log foo.c
svn log bar.c@42
svn log http://www.example.com/repo/project/foo.c
svn log http://www.example.com/repo/project foo.c bar.c
svn log http://www.example.com/repo/project@50 foo.c bar.c
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-q [--quiet] : 不打印信息,或只打印概要信息
-v [--verbose] : 打印附加信息
-g [--use-merge-history] : 从合并历史使用/显示额外信息
-c [--change] ARG : 版本 ARG 引起的改变
--targets ARG : 传递文件 ARG 内容为附件参数
--stop-on-copy : 查看历史不要跨越不同的副本
--incremental : 给予适合串联的输出
--xml : 输出为 XML
-l [--limit] ARG : 日值项最大值
--with-all-revprops : 获取所有版本属性
--with-no-revprops : 没有找回版本属性
--with-revprop ARG : 获取版本属性 ARG
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--diff : 产生差异输出
--diff-cmd ARG : 使用 ARG 作为比较命令
--internal-diff : 覆盖配置文件中指定的 diff-cmd
-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 函数名称。
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
merge: Merge changes into a working copy.
usage: 1. merge SOURCE[@REV] [TARGET_WCPATH]
(the 'sync' merge)
2. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]
(the 'cherry-pick' merge)
3. merge --reintegrate SOURCE[@REV] [TARGET_WCPATH]
(the 'reintegrate' merge)
4. merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]
(the '2-URL' merge)
1. This form is called a 'sync' (or 'catch-up') merge:
svn merge SOURCE[@REV] [TARGET_WCPATH]
A sync merge is used to fetch all the latest changes made on a parent
branch. In other words, the target branch has originally been created
by copying the source branch, and any changes committed on the source
branch since branching are applied to the target branch. This uses
merge tracking to skip all those revisions that have already been
merged, so a sync merge can be repeated periodically to stay up-to-
date with the source branch.
SOURCE specifies the branch from where the changes will be pulled, and
TARGET_WCPATH specifies a working copy of the target branch to which
the changes will be applied. Normally SOURCE and TARGET_WCPATH should
each correspond to the root of a branch. (If you want to merge only a
subtree, then the subtree path must be included in both SOURCE and
TARGET_WCPATH; this is discouraged, to avoid subtree mergeinfo.)
SOURCE is usually a URL. The optional '@REV' specifies both the peg
revision of the URL and the latest revision that will be considered
for merging; if REV is not specified, the HEAD revision is assumed. If
SOURCE is a working copy path, the corresponding URL of the path is
used, and the default value of 'REV' is the base revision (usually the
revision last updated to).
TARGET_WCPATH is a working copy path; if omitted, '.' is assumed.
- Sync Merge Example -
A feature is being developed on a branch called 'feature', which has
originally been a copy of trunk. The feature branch has been regularly
synced with trunk to keep up with the changes made there. The previous
sync merges are not shown on this diagram, and the last of them was
done when HEAD was r100. Currently, HEAD is r200.
feature +------------------------o-----
/ ^
/ ............ |
/ . . /
trunk ------+------------L--------------R------
r100 r200
Subversion will locate all the changes on 'trunk' that have not yet
been merged into the 'feature' branch. In this case that is a single
range, r100:200. In the diagram above, L marks the left side
(trunk@100) and R marks the right side (trunk@200) of the merge. The
difference between L and R will be applied to the target working copy
path. In this case, the working copy is a clean checkout of the entire
'feature' branch.
To perform this sync merge, have a clean working copy of the feature
branch and run the following command in its top-level directory:
svn merge ^/trunk
Note that the merge is now only in your local working copy and still
needs to be committed to the repository so that it can be seen by
others. You can review the changes and you may have to resolve
conflicts before you commit the merge.
2. This form is called a 'cherry-pick' merge:
svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]
A cherry-pick merge is used to merge specific revisions (or revision
ranges) from one branch to another. By default, this uses merge
tracking to automatically skip any revisions that have already been
merged to the target; you can use the --ignore-ancestry option to
disable such skipping.
SOURCE is usually a URL. The optional '@REV' specifies only the peg
revision of the URL and does not affect the merge range; if REV is not
specified, the HEAD revision is assumed. If SOURCE is a working copy
path, the corresponding URL of the path is used, and the default value
of 'REV' is the base revision (usually the revision last updated to).
TARGET_WCPATH is a working copy path; if omitted, '.' is assumed.
The revision ranges to be merged are specified by the '-r' and/or '-c'
options. '-r N:M' refers to the difference in the history of the
source branch between revisions N and M. You can use '-c M' to merge
single revisions: '-c M' is equivalent to '-r <M-1>:M'. Each such
difference is applied to TARGET_WCPATH.
If the mergeinfo in TARGET_WCPATH indicates that revisions within the
range were already merged, changes made in those revisions are not
merged again. If needed, the range is broken into multiple sub-ranges,
and each sub-range is merged separately.
A 'reverse range' can be used to undo changes. For example, when
source and target refer to the same branch, a previously committed
revision can be 'undone'. In a reverse range, N is greater than M in
'-r N:M', or the '-c' option is used with a negative number: '-c -M'
is equivalent to '-r M:<M-1>'.
Multiple '-c' and/or '-r' options may be specified and mixing of
forward and reverse ranges is allowed.
- Cherry-pick Merge Example -
A bug has been fixed on trunk in revision 50. This fix needs to
be merged from trunk onto the release branch.
1.x-release +-----------------------o-----
/ ^
/ |
/ |
trunk ------+--------------------------LR-----
r50
In the above diagram, L marks the left side (trunk@49) and R marks the
right side (trunk@50) of the merge. The difference between the left
and right side is applied to the target working copy path.
Note that the difference between revision 49 and 50 is exactly those
changes that were committed in revision 50, not including changes
committed in revision 49.
To perform the merge, have a clean working copy of the release branch
and run the following command in its top-level directory; remember
that the default target is '.':
svn merge -c50 ^/trunk
You can also cherry-pick several revisions and/or revision ranges:
svn merge -c50,54,60 -r65:68 ^/trunk
3. This form is called a 'reintegrate merge':
svn merge --reintegrate SOURCE[@REV] [TARGET_WCPATH]
In a reintegrate merge, an (e.g. feature) branch is merged back to its
originating branch. In other words, the source branch has originally
been created by copying the target branch, development has concluded
on the source branch and it should now be merged back into the target
branch.
SOURCE is the URL of a branch to be merged back. If REV is specified,
it is used as the peg revision for SOURCE; if REV is not specified,
the HEAD revision is assumed.
TARGET_WCPATH is a working copy of the branch the changes will be
applied to.
- Reintegrate Merge Example -
A feature has been developed on a branch called 'feature'. The feature
branch started as a copy of trunk@W. Work on the feature has completed
and it should be merged back into the trunk.
The feature branch was last synced with trunk up to revision X. So the
difference between trunk@X and feature@HEAD contains the complete set
of changes that implement the feature, and no other changes. These
changes are applied to trunk.
feature +--------------------------------R
/ . \
/ ............. \
/ . v
trunk ------+--------------------L------------------o
rW rX
In the diagram above, L marks the left side (trunk@X) and R marks the
right side (feature@HEAD) of the merge. The difference between the
left and right side is merged into trunk, the target.
To perform the merge, have a clean working copy of trunk and run the
following command in its top-level directory:
svn merge --reintegrate ^/feature
To prevent unnecessary merge conflicts, a reintegrate merge requires
that TARGET_WCPATH is not a mixed-revision working copy, has no local
modifications, and has no switched subtrees.
A reintegrate merge also requires that the source branch is coherently
synced with the target -- in the above example, this means that all
revisions between the branch point W and the last merged revision X
are merged to the feature branch, so that there are no unmerged
revisions in-between.
After the reintegrate merge, the feature branch cannot be synced to
the trunk again without merge conflicts. If further work must be done
on the feature branch, it should be deleted and then re-created.
4. This form is called a '2-URL merge':
svn merge SOURCE1[@N] SOURCE2[@M] [TARGET_WCPATH]
Two source URLs are specified, together with two revisions N and M.
The two sources are compared at the specified revisions, and the
difference is applied to TARGET_WCPATH, which is a path to a working
copy of another branch. The three branches involved can be completely
unrelated.
You should use this merge variant only if the other variants do not
apply to your situation, as this variant can be quite complex to
master.
If TARGET_WCPATH is omitted, a default value of '.' is assumed.
However, in the special case where both sources refer to a file node
with the same basename and a similarly named file is also found within
'.', the differences will be applied to that local file. The source
revisions default to HEAD if omitted.
The sources can also be specified as working copy paths, in which case
the URLs of the merge sources are derived from the working copies.
- 2-URL Merge Example -
Two features have been developed on separate branches called 'foo' and
'bar'. It has since become clear that 'bar' should be combined with
the 'foo' branch for further development before reintegration.
Although both feature branches originate from trunk, they are not
directly related -- one is not a direct copy of the other. A 2-URL
merge is necessary.
The 'bar' branch has been synced with trunk up to revision 500.
(If this revision number is not known, it can be located using the
'svn log' and/or 'svn mergeinfo' commands.)
The difference between trunk@500 and bar@HEAD contains the complete
set of changes related to feature 'bar', and no other changes. These
changes are applied to the 'foo' branch.
foo +-----------------------------------o
/ ^
/ /
/ r500 /
trunk ------+------+-----------------L---------> /
\ . /
\ ............ /
\ . /
bar +-----------------------------------R
In the diagram above, L marks the left side (trunk@500) and R marks
the right side (bar@HEAD) of the merge. The difference between the
left and right side is applied to the target working copy path, in
this case a working copy of the 'foo' branch.
To perform the merge, have a clean working copy of the 'foo' branch
and run the following command in its top-level directory:
svn merge ^/trunk@500 ^/bar
The exact changes applied by a 2-URL merge can be previewed with svn's
diff command, which is a good idea to verify if you do not have the
luxury of a clean working copy to merge to. In this case:
svn diff ^/trunk@500 ^/bar@HEAD
The following applies to all types of merges:
To prevent unnecessary merge conflicts, svn merge requires that
TARGET_WCPATH is not a mixed-revision working copy. Running 'svn update'
before starting a merge ensures that all items in the working copy are
based on the same revision.
If possible, you should have no local modifications in the merge's target
working copy prior to the merge, to keep things simpler. It will be
easier to revert the merge and to understand the branch's history.
Switched sub-paths should also be avoided during merging, as they may
cause incomplete merges and create subtree mergeinfo.
For each merged item a line will be printed with characters reporting the
action taken. These characters have the following meaning:
A Added
D Deleted
U Updated
C Conflict
G Merged
E Existed
R Replaced
Characters in the first column report about the item itself.
Characters in the second column report about properties of the item.
A 'C' in the third column indicates a tree conflict, while a 'C' in
the first and second columns indicate textual conflicts in files
and in property values, respectively.
- Merge Tracking -
Subversion uses the svn:mergeinfo property to track merge history. This
property is considered at the start of a merge to determine what to merge
and it is updated at the conclusion of the merge to describe the merge
that took place. Mergeinfo is used only if the two sources are on the
same line of history -- if the first source is an ancestor of the second,
or vice-versa (i.e. if one has originally been created by copying the
other). This is verified and enforced when using sync merges and
reintegrate merges.
The --ignore-ancestry option prevents merge tracking and thus ignores
mergeinfo, neither considering it nor recording it.
- Merging from foreign repositories -
Subversion does support merging from foreign repositories.
While all merge source URLs must point to the same repository, the merge
target working copy may come from a different repository than the source.
However, there are some caveats. Most notably, copies made in the
merge source will be transformed into plain additions in the merge
target. Also, merge-tracking is not supported for merges from foreign
repositories.
有效选项:
-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 : 只合并合并信息的差异
-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', 'working', 'base', 'mine-conflict',
'theirs-conflict', 'mine-full', 'theirs-full',
'edit', 'launch')
(shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')
--reintegrate : 合并分支回父分支
--allow-mixed-revisions : 允许合并到含有混合版本的工作副本.
不建议使用此选项!
请先执行 'svn update' 。
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
mergeinfo: 显示合并的相关信息。
用法: mergeinfo SOURCE[@REV] [TARGET[@REV]]
显示 SOURCE 与 TARGET(默认为“.”) 之间的合并(或潜在合并)信息。显示选项
--show-revs 指定的信息类型。如果没有传入 --show-revs,那么就使用其默认值
--show-revs='merged'。
深度可以是“empty”或“infinity”;默认值是“empty”
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--show-revs ARG : 指定显示哪个版本集合
('merged', 'eligible')
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
mkdir: 创建纳入版本控制的新目录。
用法: 1、mkdir PATH...
2、mkdir URL...
创建版本控制的目录。
1、每个以工作副本 PATH 指定的目录,都会在本地创建,并且加入增加
调度,直到下次提交。
2、每个以 URL 指定的目录,都会通过立即提交在版本库中创建。
在这两个情况下,所有的中间目录都必须事先存在,
除非使用选项 --parents。
有效选项:
-q [--quiet] : 不打印信息,或只打印概要信息
--parents : 创建中间目录
-m [--message] ARG : 指定日志信息ARG
-F [--file] ARG : 从文件ARG读取日志信息
--force-log : 强制校验日志信息资源
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--encoding ARG : 将ARG的值视为字符编码
--with-revprop ARG : 在新版本设置版本属性 ARG
使用格式 name[=value]
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
move (mv, rename, ren): 在工作副本或版本库中移动或改名文件或目录。
用法: move SRC... DST
当移动多个源时,它们作为 DST 的子节点增加,DST 必须是目录。
注意: 本子命令等同于先 “copy”,然后 “delete”。
注意: 此命令中 --revision 选项没有作用,已经淘汰。
SRC 可同时为工作副本(WC) 路径或 URL:
WC -> WC : 移动并加入新增调度 (连同历史记录)
URL -> URL : 完全是服务器端更名。
所有 SRC 必须是同一类型。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-q [--quiet] : 不打印信息,或只打印概要信息
--force : 强制操作运行
--parents : 创建中间目录
-m [--message] ARG : 指定日志信息ARG
-F [--file] ARG : 从文件ARG读取日志信息
--force-log : 强制校验日志信息资源
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--encoding ARG : 将ARG的值视为字符编码
--with-revprop ARG : 在新版本设置版本属性 ARG
使用格式 name[=value]
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
patch: Apply a patch to a working copy.
usage: patch PATCHFILE [WCPATH]
Apply a unidiff patch in PATCHFILE to the working copy WCPATH.
If WCPATH is omitted, '.' is assumed.
A unidiff patch suitable for application to a working copy can be
produced with the 'svn diff' command or third-party diffing tools.
Any non-unidiff content of PATCHFILE is ignored.
Changes listed in the patch will either be applied or rejected.
If a change does not match at its exact line offset, it may be applied
earlier or later in the file if a match is found elsewhere for the
surrounding lines of context provided by the patch.
A change may also be applied with fuzz, which means that one
or more lines of context are ignored when matching the change.
If no matching context can be found for a change, the change conflicts
and will be written to a reject file with the extension .svnpatch.rej.
For each patched file a line will be printed with characters reporting
the action taken. These characters have the following meaning:
A Added
D Deleted
U Updated
C Conflict
G Merged (with local uncommitted changes)
Changes applied with an offset or fuzz are reported on lines starting
with the '>' symbol. You should review such changes carefully.
If the patch removes all content from a file, that file is scheduled
for deletion. If the patch creates a new file, that file is scheduled
for addition. Use 'svn revert' to undo deletions and additions you
do not agree with.
Hint: If the patch file was created with Subversion, it will contain
the number of a revision N the patch will cleanly apply to
(look for lines like "--- foo/bar.txt (revision N)").
To avoid rejects, first update to the revision N using
'svn update -r N', apply the patch, and then update back to the
HEAD revision. This way, conflicts can be resolved interactively.
有效选项:
-q [--quiet] : 不打印信息,或只打印概要信息
--dry-run : 尝试操作但没有修改
--strip ARG : 需要从补丁文件中的路径中裁剪的前导路径组件数量。
默认 --strip 0 不修改路径。指定 --strip 1 会将
路径 'doc/fudge/crunchy.html' 转换为
'fudge/crunchy.html'。指定 --strip 2 会得到
'crunchy.html' 。在所有平台中期望的组件分隔符
都是 '/'。前导 '/' 被计算为一个组件。
--reverse-diff : 反向应用补丁
--ignore-whitespace : 在模式匹配时,忽略空白
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
propdel (pdel, pd): 删除目录、文件或版本的属性。
用法: 1、propdel PROPNAME [PATH...]
2、propdel PROPNAME --revprop -r REV [URL]
1、删除工作副本中纳入版本管理的文件或目录的属性。
2、删除版本库中版本的属性。TARGET只用来判断访问哪个版本库。
有效选项:
-q [--quiet] : 不打印信息,或只打印概要信息
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
--revprop : 在版本属性上操作(使用-r参数)
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
propedit (pedit, pe): 使用外部编辑器编辑属性。
用法: 1、propedit PROPNAME TARGET...
2、propedit PROPNAME --revprop -r REV [TARGET]
1、编辑工作副本或者版本库中受版本控制的属性。
2、编辑版本库中指定版本的未版本控制的远程属性。
TARGET 只用来判断访问哪一个版本库。
参见 “svn help propset” 以获得更多设置属性的信息。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
--revprop : 在版本属性上操作(使用-r参数)
-m [--message] ARG : 指定日志信息ARG
-F [--file] ARG : 从文件ARG读取日志信息
--force-log : 强制校验日志信息资源
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--encoding ARG : 将ARG的值视为字符编码
--with-revprop ARG : 在新版本设置版本属性 ARG
使用格式 name[=value]
--force : 强制操作运行
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
propget (pget, pg): 显示目录、文件或版本的属性取值。
用法: 1、propget PROPNAME [TARGET[@REV]...]
2、propget PROPNAME --revprop -r REV [URL]
1、显示版本控制的属性。REV 指定从哪个版本开始查找目标。
2、显示版本库中版本的未版本控制的远程属性。
只用来判断访问哪个版本库。
本子命令默认会在属性内容加上额外的换行符,得到美观的输出。另外,
当同时处理多个路径时,每一个属性内容会在开头增加上它所对应的路径。
使用 --strict 选项可以关闭这些美化行为 (它很有用,例如将二进制属
性内容重定向到一个文件,但是仅用于单一目标的非递归操作)。
有效选项:
-v [--verbose] : 打印附加信息
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
--revprop : 在版本属性上操作(使用-r参数)
--strict : 使用严格的语法
--xml : 输出为 XML
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
proplist (plist, pl): 列出目录、文件或版本的所有属性。
用法: 1、proplist [TARGET[@REV]...]
2、proplist --revprop -r REV [TARGET]
1、显示目标的属性。REV 指定从哪个版本开始查找目标。
2、列出版本库中版本的属性。TARGET 只用来判断访问哪个版本库。
有效选项:
-v [--verbose] : 打印附加信息
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-q [--quiet] : 不打印信息,或只打印概要信息
--revprop : 在版本属性上操作(使用-r参数)
--xml : 输出为 XML
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
propset (pset, ps): 设定目录、文件或版本的属性。
用法: 1. propset PROPNAME PROPVAL PATH...
2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]
1、在工作副本中修改一个受版本控制的属性。
2、在版本库的版本中修改一个非版本控制的属性。
(TARGET 只用来判断访问哪一个版本库。)
可以使用选项 --file 来代替 PROPVAL 赋值。
注意: svn 除了能存储任意属性外,还识别以下专用的版本控制属性:
svn:ignore - 以换行符隔开的文件忽略模式列表。
svn:keywords - 将被展开的关键字。有效的关键字为。
URL, HeadURL - 此对象最新版本的 URL。
Author, LastChangedBy - 最后修改文件的人。
Date, LastChangedDate - 此对象最后修改的日期。
Rev, Revision, - 此对象最后修改的版本号。
LastChangedRevision
Id - 前四个关键字的压缩摘要。
Header - 与 Id 类似,只是包含完整的 URL。
svn:executable - 如果存在此属性则设置文件为可执行的。
使用 “svn propdel svn:executable PATH...” 清除。
svn:eol-style - “native”,“LF”,“CR”,“CRLF” 之一。
svn:mime-type - 文件的媒体类型。用以决定是否该合并该文件,
以及 Apache 如何处理它。媒体类型以“text/”开头(或是没有指
定媒体类型)的文件会被视为纯文本文件,否则就是二进制数据。
svn:externals - 以换行符隔开的模块说明列表,每项都由一个 URL 和
相对目录路径组成,与命令“svn checkout”的句法类似:
http://example.com/repos/zig foo/bar
可以指定版本以钉住已知的版本:
-r25 http://example.com/repos/zig foo/bar
为了清楚的表明路径上的一个元素已经被删除(甚至可能被删除了多次),
可以在 URL 后追加一个 peg 版本:
-r25 http://example.com/repos/zig@42 foo/bar
下列开始字符串指示相对 URL:
../ 相对于外部引用的父目录
^/ 相对于版本库的根
// 相对于方案
/ 相对于服务器根
相对路径“relative_path relative_path”这种不明确的格式来自
“relative_url relative_path”和 peg 版本支持。
以字符 '#' 开始的外部定义行被认为是注释,并且忽略。
Subversion 1.4 和早期的仅支持下列格式,peg 版本只能使用 -r 指定,
并且 URL 不能使用相对格式:
foo http://example.com/repos/zig
foo/bar -r 1234 http://example.com/repos/zag
不赞同使用这些格式。它们只应该用于希望支持 1.4 客户端的情况。
svn:needs-lock - 此属性表明文件在修改前应该加锁。
如果没有加锁,则此文件在工作副本中应被设为只读。使用
“svn propdel svn:needs-lock PATH...” 清除。
svn:keywords, svn:executable, svn:eol-style, svn:mime-type 以及
svn:needs-lock 属性不能设置在目录上。使用非递归选项(-N)在目录上
设置这些属性时会失败,递归操作时只会作用于指定目录中的文件子孙上。
有效选项:
-F [--file] ARG : 从文件 ARG 读取属性值
--encoding ARG : 将ARG的值视为字符编码
-q [--quiet] : 不打印信息,或只打印概要信息
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
--targets ARG : 传递文件 ARG 内容为附件参数
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--revprop : 在版本属性上操作(使用-r参数)
--force : 强制操作运行
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
relocate: 重新定位工作副本,指向不同的版本库根 URL。
用法: 1. relocate FROM-PREFIX TO-PREFIX [PATH...]
2. relocate TO-URL [PATH]
改写工作副本 URL 元数据,以反映仅版本库根 URL 的改变。这用于仅版本库根
URL 改变(例如方案或主机名称),但是工作副本内容仍旧与版本库对应的情况。
1. FROM-PREFIX 和 TO-PREFIX 分别对应工作副本的旧 URL 与新 URL 开始子串
(如果你喜欢,可以指定完整的 URL)。请使用 'svn info' 来确定当前工作
副本的 URL。
2. TO-URL 是用于 PATH 的(完整的)新版本库 URL。
例如:
svn relocate http:// svn:// project1 project2
svn relocate http://www.example.com/repo/project \
svn://svn.example.com/repo/project
有效选项:
--ignore-externals : 忽略外部项目
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
resolve: 解决工作副本中目录或文件的冲突。
用法: resolve --accept=ARG [PATH...]
注意: 当前需要选项 --accept 。
有效选项:
--targets ARG : 传递文件 ARG 内容为附件参数
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-q [--quiet] : 不打印信息,或只打印概要信息
--accept ARG : 指定自动解决冲突动作的源
('base', 'working', 'mine-conflict',
'theirs-conflict', 'mine-full', 'theirs-full')
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
resolved: 删除工作副本中目录或文件的“冲突”状态。
用法: resolved PATH...
注意: 本子命令不会依语法来解决冲突或是删除冲突标记;它只是删除冲突相关的
附加文件,让 PATH 可以被再次提交。它已经过时,被
“svn resolve --accept working”取代。
有效选项:
--targets ARG : 传递文件 ARG 内容为附件参数
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-q [--quiet] : 不打印信息,或只打印概要信息
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
revert: 将工作副本文件恢复到原始版本(恢复大部分的本地修改)。
用法: revert PATH...
注意: 本子命令不会访问网络,它解除任何冲突的状态。
有效选项:
--targets ARG : 传递文件 ARG 内容为附件参数
-R [--recursive] : 向下递归,与 --depth=infinity 相同
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-q [--quiet] : 不打印信息,或只打印概要信息
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
status (stat, st): 显示工作副本中目录与文件的状态。
用法: status [PATH...]
未指定参数时,只显示本地修改的条目(没有网络访问)。
使用 -q 时,只显示本地修改条目的摘要信息。
使用 -u 时,增加工作版本和服务器上版本过期信息。
使用 -v 时,显示每个条目的完整版本信息。
输出的前七栏各占一个字符宽度:
第一栏: 表示一个项目是增加、删除,还是修改
“ ” 无修改
“A” 增加
“C” 冲突
“D” 删除
“I” 忽略
“M” 改变
“R” 替换
“X” 未纳入版本控制的目录,被外部引用的目录所创建
“?” 未纳入版本控制
“!” 该项目已遗失(被非 svn 命令删除)或不完整
“~” 版本控制下的项目与其它类型的项目重名
第二栏: 显示目录或文件的属性状态
“ ” 无修改
“C” 冲突
“M” 改变
第三栏: 工作副本目录是否被锁定
“ ” 未锁定
“L” 锁定
第四栏: 已调度的提交是否包含副本历史
“ ” 没有历史
“+” 包含历史
第五栏: 该条目相对其父目录是否已切换,或者是外部引用的文件
“ ” 正常
“S” 已切换
“X” 被外部引用创建的文件
第六栏: 版本库锁定标记
(没有 -u)
“ ” 没有锁定标记
“K” 存在锁定标记
(使用 -u)
“ ” 没有在版本库中锁定,没有锁定标记
“K” 在版本库中被锁定,存在锁定标记
“O” 在版本库中被锁定,锁定标记在一些其他工作副本中
“T” 在版本库中被锁定,存在锁定标记但已被窃取
“B” 没有在版本库中被锁定,存在锁定标记但已被破坏
第七栏: 项目冲突标记
“ ” 正常
“C” 树冲突
如果项目包含于树冲突之中,在项目状态行后会附加行,说明冲突的种类。
是否过期的信息出现的位置是第九栏(与 -u 并用时):
“*” 服务器上有更新版本
“ ” 工作副本是最新版的
剩余的栏位皆为变动宽度,并以空白隔开:
工作版本号(使用 -u 或 -v 时;被复制时显示“-”)
最后提交的版本与最后提交的作者(使用 -v 时)
工作副本路径总是最后一栏,所以它可以包含空白字符。
问号标记 (“?”) 出现在工作版本,最后提交的版本,或最后提交的作者位置时,
它指示信息未知,或者给出此项目的状态是不恰当的 (例如项目是复制操作的结果)。
问号标记用来作为一个视觉占位符,易于解析
范例输出:
svn status wc
M wc/bar.c
A + wc/qax.c
svn status -u wc
M 965 wc/bar.c
* 965 wc/foo.c
A + - wc/qax.c
版本 981 的状态
svn status --show-updates --verbose wc
M 965 938 kfogel wc/bar.c
* 965 922 sussman wc/foo.c
A + - 687 joe wc/qax.c
965 687 joe wc/zig.c
版本 981 的状态
svn status
M wc/bar.c
! C wc/qaz.c
> local missing, incoming edit upon update
D wc/qax.c
有效选项:
-u [--show-updates] : 显示更新信息
-v [--verbose] : 打印附加信息
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
-q [--quiet] : 不打印未版本控制的条目
--no-ignore : 忽略默认值和 svn:ignore 属性
--incremental : 给予适合串联的输出
--xml : 输出为 XML
--ignore-externals : 忽略外部项目
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
switch (sw): 更新工作副本至同一版本库中的不同 URL。
用法: 1、switch URL[@PEGREV] [PATH]
2、switch --relocate FROM-PREFIX TO-PREFIX [PATH...]
1、更新工作副本,与同一版本库中的新 URL 对应。其行为跟 “svn update” 很像,
也是将工作副本切换到同一版本库中某个分支或者标签的方法。PEGREV 决定从
哪个版本查找目标。
如果使用了 “--force” 选项,在工作副本中未版本控制的障碍路径,不会自动
导致失败。如果障碍路径与版本库中的对应路径类型相同(文件或目录),它将成
为受版本控制的路径,但是内容不改变。它意味着障碍路径的子孙,也可能是障
碍路径,同样会受版本控制。对于障碍路径中的文件,如果与版本库内的不同,
将视为工作副本发生本地修改。版本库中的所有属性都应用于障碍路径。
使用 “--set-depth” 选项设置此操作目标的工作副本之新深度。
如果新 URL 与工作副本路径没有版本继承关系,Subversion 将会拒绝操作。选项
'--ignore-ancestry' 可以禁止此检查。
2、选项 “--relocate” 已经淘汰。它的句法等价于
“svn relocate FROM-PREFIX TO-PREFIX [PATH]”。
参见 “svn help update” 以获取报告执行动作的字符列表。
样例:
svn switch ^/branches/1.x-release
svn switch --relocate http:// svn://
svn switch --relocate http://www.example.com/repo/project \
svn://svn.example.com/repo/project
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--set-depth ARG : 设置工作副本的新深度为 ARG('exclude',
'empty', 'files', 'immediates', 或 'infinity')
-q [--quiet] : 不打印信息,或只打印概要信息
--diff3-cmd ARG : 使用 ARG 作为合并命令
--relocate : 通过URL改写重新定位
--ignore-externals : 忽略外部项目
--ignore-ancestry : 合并时忽略原始信息
--force : 强制操作运行
--accept ARG : 指定自动解决冲突动作
('postpone', 'working', 'base', 'mine-conflict',
'theirs-conflict', 'mine-full', 'theirs-full',
'edit', 'launch')
(shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
unlock: 解除工作副本或URL的锁定。
用法: unlock TARGET...
使用 --force 终止锁定。
有效选项:
--targets ARG : 传递文件 ARG 内容为附件参数
--force : 强制操作运行
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
update (up): 将版本库的修改合并到工作副本中。
用法: update [PATH...]
如果没有指定版本,则将工作副本更新到 HEAD 版本。否则同步到 -r 选项所
指定的版本。
每更新一项就输出一行信息,使用首字符来报告执行的动作。这些字符的含义是:
A 已添加
D 已删除
U 已更新
C 合并冲突
G 合并成功
E 已存在
R 已替换
第一列字符报告项目本身。
第二列表示报告项目属性。
第三列中的字符“B”表示此文件上的锁被终止或窃取。
第四列中的字符“C”表示树冲突,同时“C”出现在第一列或第二列,分别表示
内容冲突或属性冲突。
如果使用了 “--force” 选项,在工作副本中未版本控制的障碍路径,不会自动
导致签出失败。 如果障碍路径与版本库中的对应路径类型相同(文件或目录),它
将成为受版本控制的路径,但是内容不改变。它意味着障碍路径的子孙,也可能
是障碍路径,同样会受版本控制。对于障碍路径中的文件,如果与版本库内的
不同,将视为工作副本发生本地修改。版本库中的所有属性都应用于障碍路径。
用第一列字符 “E” 来报告障碍路径。
如果工作副本中并没有指定的更新目标,但是有其父目录,那么就在指定路径上
将目标检出到其父目录中。如果使用了选项 --parents,就会创建目标的所有不
存在的父目录 (使用选项 --depth=empty)。
使用“--set-depth”选项设置此操作目标的工作副本之新深度。
有效选项:
-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)
版本参数可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates
--depth ARG : 限制操作深度是 ARG ('empty', 'files',
'immediates', 或 'infinity')
--set-depth ARG : 设置工作副本的新深度为 ARG('exclude',
'empty', 'files', 'immediates', 或 'infinity')
-q [--quiet] : 不打印信息,或只打印概要信息
--diff3-cmd ARG : 使用 ARG 作为合并命令
--force : 强制操作运行
--ignore-externals : 忽略外部项目
--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作
--editor-cmd ARG : 使用 ARG 作为外部编辑器
--accept ARG : 指定自动解决冲突动作
('postpone', 'working', 'base', 'mine-conflict',
'theirs-conflict', 'mine-full', 'theirs-full',
'edit', 'launch')
(shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')
--parents : 创建中间目录
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
upgrade: 升级工作副本的元数据存储格式。
用法: upgrade [WCPATH...]
保留本地修改。
有效选项:
-q [--quiet] : 不打印信息,或只打印概要信息
全局选项:
--username ARG : 指定用户名称 ARG
--password ARG : 指定密码 ARG
--no-auth-cache : 不要缓存用户认证令牌
--non-interactive : 不要交互提示
--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)
--config-dir ARG : 从目录 ARG 读取用户配置文件
--config-option ARG : 以下属格式设置用户配置选项:
FILE:SECTION:OPTION=[VALUE]
例如:
servers:global:http-library=serf
网友评论