本手册描述了 Subversion 1.2。如果你正在运行更新版本的 Subversion,我们强烈建议你访问 https://svnbook.subversion.org.cn/ 并查阅适合你 Subversion 版本的版本。

第 9 章。Subversion 完整参考

目录

Subversion 命令行客户端:svn
svn 选项
svn 子命令
svn add
svn blame
svn cat
svn checkout
svn cleanup
svn commit
svn copy
svn delete
svn diff
svn export
svn help
svn import
svn info
svn list
svn lock
svn log
svn merge
svn mkdir
svn move
svn propdel
svn propedit
svn propget
svn proplist
svn propset
svn resolved
svn revert
svn status
svn switch
svn unlock
svn update
svnadmin
svnadmin 选项
svnadmin 子命令
svnadmin create
svnadmin deltify
svnadmin dump
svnadmin help
svnadmin hotcopy
svnadmin list-dblogs
svnadmin list-unused-dblogs
svnadmin load
svnadmin lslocks
svnadmin lstxns
svnadmin recover
svnadmin rmlocks
svnadmin rmtxns
svnadmin setlog
svnadmin verify
svnlook
svnlook 选项
svnlook
svnlook author
svnlook cat
svnlook changed
svnlook date
svnlook diff
svnlook dirs-changed
svnlook help
svnlook history
svnlook info
svnlook lock
svnlook log
svnlook propget
svnlook proplist
svnlook tree
svnlook uuid
svnlook youngest
svnserve
svnserve 选项
svnversion
svnversion
mod_dav_svn
mod_dav_svn 配置指令
Subversion 属性
Subversion 定义的属性

本章旨在为使用 Subversion 提供完整参考。这包括命令行客户端 (svn) 及其所有子命令,以及仓库管理程序 (svnadminsvnlook) 及其各自的子命令。

Subversion 命令行客户端:svn

要使用命令行客户端,你可以输入 svn、你要使用的子命令 [49] 以及你想要操作的任何选项或目标 - 子命令和选项出现的顺序没有具体规定。例如,以下所有方法都是使用 svn status 的有效方式

$ svn -v status
$ svn status -v 
$ svn status -v myfile

你可以在 第 3 章,引导游览 中找到更多关于如何使用大多数客户端命令的示例,以及在 名为“属性”部分 中管理属性的命令。

svn 选项

虽然 Subversion 对其子命令有不同的选项,但所有选项都是全局的 - 也就是说,每个选项的含义都保证相同,无论你将其与哪个子命令一起使用。例如,--verbose (-v) 始终表示“详细输出”,无论你将其与哪个子命令一起使用。

--auto-props

启用自动属性,覆盖 config 文件中的 enable-auto-props 指令。

--config-dir DIR

指示 Subversion 从指定的目录读取配置信息,而不是默认位置(用户主目录中的 .subversion)。

--diff-cmd CMD

指定一个外部程序来显示文件之间的差异。当调用 svn diff 时,它使用 Subversion 的内部 diff 引擎,该引擎默认提供统一的 diff。如果你想使用外部 diff 程序,请使用 --diff-cmd。你可以使用 --extensions 选项将选项传递给 diff 程序(关于这一点将在本节稍后进行说明)。

--diff3-cmd CMD

指定一个外部程序来合并文件。

--dry-run

执行命令的所有操作,但不进行任何实际更改 - 无论是在磁盘上还是在仓库中。

--editor-cmd CMD

指定一个外部程序来编辑日志消息或属性值。有关如何指定默认编辑器的说明,请参阅 名为“配置”部分 中的 editor-cmd 部分。

--encoding ENC

告诉 Subversion 你的提交消息以提供的字符集编码。默认值为操作系统的本机区域设置,如果你提交消息使用任何其他编码,则应指定编码。

--extensions (-x) ARGS

指定 Subversion 在提供文件之间的差异时应传递给外部 diff 命令的一个或多个参数。如果你想传递多个参数,则必须将它们全部括在引号中(例如,svn diff --diff-cmd /usr/bin/diff -x "-b -E")。此选项只能在也传递 --diff-cmd 选项的情况下使用。

--file (-F) FILENAME

将作为此选项参数传递的文件内容用于指定的子命令。

--force

强制执行特定命令或操作。有些操作 Subversion 会阻止你正常使用,但你可以传递 force 选项来告诉 Subversion“我知道我在做什么以及可能造成的后果,所以让我开始吧”。此选项相当于在通电情况下进行自己的电气工作 - 如果你不知道自己在做什么,你很可能会受到电击。

--force-log

强制接受传递给 --message (-m) 或 --file (-F) 选项的可疑参数。默认情况下,如果参数看起来像是子命令的目标,Subversion 会产生错误。例如,如果你将版本控制文件路径传递给 --file (-F) 选项,Subversion 会认为你犯了一个错误,该路径本来应该是操作的目标,而你只是没有提供其他 - 未版本控制 - 文件作为日志消息的来源。要声明你的意图并覆盖这些类型的错误,请将 --force-log 选项传递给接受日志消息的子命令。

--help (-h-?)

如果与一个或多个子命令一起使用,则显示每个子命令的内置帮助文本。如果单独使用,则显示一般的客户端帮助文本。

--ignore-ancestry

告诉 Subversion 在计算差异时忽略祖先(仅依赖路径内容)。

--ignore-externals

告诉 Subversion 忽略外部定义以及由它们管理的外部工作副本。

--incremental

以适合串联的格式打印输出。

--limit NUM

仅显示前 NUM 条日志消息。

--message (-m) MESSAGE

表示你将在命令行上指定提交消息,紧随此选项之后。例如

$ svn commit -m "They don't make Sunday."
--new ARG

ARG 用作更新的目标。

--no-auth-cache

防止在 Subversion 管理目录中缓存身份验证信息(例如用户名和密码)。

--no-auto-props

禁用自动属性,覆盖 config 文件中的 enable-auto-props 指令。

--no-diff-added

防止 Subversion 打印已添加文件的差异。默认情况下,当您添加文件时,svn diff 会打印与您添加现有(空)文件的全部内容时相同的差异。

--no-diff-deleted

防止 Subversion 打印已删除文件的差异。默认情况下,当您删除文件时,svn diff 会打印与您保留文件但删除所有内容时相同的差异。

--no-ignore

在状态列表中显示通常会被忽略的文件,因为它们与 global-ignores 配置选项或 svn:ignore 属性中的模式匹配。有关更多信息,请参阅 名为“Config”的部分名为“svn:ignore”的部分

--no-unlock

不自动解锁文件(默认的提交行为是解锁所有作为提交一部分列出的文件)。有关更多信息,请参阅 名为“Locking”的部分

--non-interactive

在身份验证失败或凭据不足的情况下,防止提示输入凭据(例如用户名或密码)。如果您在自动化脚本中运行 Subversion,并且让 Subversion 失败比提示输入更多信息更合适,这将非常有用。

--non-recursive (-N)

阻止子命令递归到子目录。大多数子命令默认情况下会递归,但有些子命令(通常是那些可能删除或撤消本地修改的子命令)不会。

--notice-ancestry

在计算差异时注意祖先。

--old ARG

ARG 用作较旧的目标。

--password PASS

表示您在命令行上提供密码用于身份验证——否则,如果需要,Subversion 会提示您输入密码。

--quiet (-q)

请求客户端在执行操作时仅打印基本信息。

--recursive (-R)

使子命令递归到子目录。大多数子命令默认情况下会递归。

--relocate FROM TO [PATH...]

svn switch 子命令一起使用,更改工作副本引用的存储库的位置。如果您的存储库位置发生更改,并且您希望继续使用现有工作副本,这将非常有用。有关示例,请参阅 svn switch

--revision (-r) REV

表示您将为特定操作提供修订版本(或修订版本范围)。您可以将修订版本号、修订版本关键字或日期(在花括号中)作为修订版本开关的参数提供。如果您希望提供修订版本范围,您可以提供两个用冒号分隔的修订版本。例如

$ svn log -r 1729
$ svn log -r 1729:HEAD
$ svn log -r 1729:1744
$ svn log -r {2001-12-04}:{2002-02-17}
$ svn log -r 1729:{2002-02-17}

有关更多信息,请参阅 名为“Revision Keywords”的部分

--revprop

对修订版本属性进行操作,而不是对特定于文件或目录的 Subversion 属性进行操作。此开关要求您还使用 --revision (-r) 开关传递修订版本。有关未版本控制属性的更多详细信息,请参阅 名为“Unversioned Properties”的部分

--show-updates (-u)

使客户端显示有关工作副本中哪些文件已过时的信息。这不会真正更新任何文件——它只是向您显示运行 svn update 时将更新哪些文件。

--stop-on-copy

使遍历版本控制资源历史记录的 Subversion 子命令在遇到复制(即历史记录中资源从存储库中的另一个位置复制的位置)时停止收集历史信息。

--strict

使 Subversion 使用严格的语义,除非谈论特定的子命令,否则这个概念相当模糊。

--targets FILENAME

告诉 Subversion 从您提供的文件名获取要操作的文件列表,而不是在命令行上列出所有文件。

--username NAME

表示您在命令行上提供用户名用于身份验证——否则,如果需要,Subversion 会提示您输入用户名。

--verbose (-v)

请求客户端在运行任何子命令时打印尽可能多的信息。这可能会导致 Subversion 打印出其他字段、每个文件的详细信息或有关其操作的其他信息。

--version

打印客户端版本信息。此信息不仅包括客户端的版本号,还包括客户端可用于访问 Subversion 存储库的所有存储库访问模块的列表。

--xml

以 XML 格式打印输出。

svn 子命令



[49] 是的,是的,您不需要子命令来使用 --version 开关,但我们很快就会讲到这一点。

TortoiseSVN 官方中文版 1.14.7 发布