本手册的编写目的是介绍 Subversion 1.1。如果您运行的是更新版本的 Subversion,我们强烈建议您访问 https://svnbooks.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 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 update
svnadmin
svnadmin 开关
svnadmin 子命令
svnadmin create
svnadmin deltify
svnadmin dump
svnadmin help
svnadmin hotcopy
svnadmin list-dblogs
svnadmin list-unused-dblogs
svnadmin load
svnadmin lstxns
svnadmin recover
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 log
svnlook propget
svnlook proplist
svnlook tree
svnlook uuid
svnlook youngest
svnserve
svnserve 开关
svnversion
svnversion
mod_dav_svn
mod_dav_svn 配置指令

本章旨在全面介绍 Subversion 的使用。这包括命令行客户端 (svn) 及其所有子命令,以及仓库管理程序 (svnadminsvnlook) 及其各自的子命令。

Subversion 命令行客户端:svn

要使用命令行客户端,您需要键入 svn、您要使用的子命令 [42] 以及您要操作的任何开关或目标——子命令和开关的出现顺序并不固定。例如,以下所有方法都是使用 svn status 的有效方法

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

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

svn 开关

虽然 Subversion 针对其子命令有不同的开关,但所有开关都是全局的,也就是说,每个开关保证在使用它的任何子命令中都具有相同的含义。例如,--verbose (-v) 始终表示“详细输出”,无论您使用它与哪个子命令一起使用。

--auto-props

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

--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

指定用于编辑日志消息或属性值的外部程序。

--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 在计算差异时忽略祖先(仅依赖路径内容)。

--incremental

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

--message (-m) MESSAGE

表明您将在命令行上指定提交消息,在该开关之后。例如

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

使用 ARG 作为较新的目标。

--no-auth-cache

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

--no-auto-props

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

--no-diff-deleted

阻止 Subversion 打印已删除文件的差异。当您删除文件时,默认行为是 svn diff 打印与您保留文件但删除所有内容时所看到的相同差异。

--no-ignore

显示状态列表中通常会被省略的文件,因为它们与global-ignores配置选项或svn:ignore属性匹配。有关详细信息,请参见 名为“配置”的章节名为“svn:ignore”的章节

--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}

有关详细信息,请参见 名为“修订版本关键字”的章节

--revprop

对修订版本属性进行操作,而不是对特定于文件或目录的 Subversion 属性进行操作。此开关要求您还使用--revision (-r) 开关传递修订版本。有关非版本化属性的详细信息,请参见 名为“非版本化属性”的章节

--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 子命令



[42] 是的,是的,您不需要子命令来使用--version开关,但我们稍后会讨论。

TortoiseSVN 官方中文版 1.14.7 发布