第 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 Switches
svnadmin Subcommands
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 Configuration Directives
Subversion properties
Subversion定义的属性

本章是使用Subversion的一个完全手册,包括了命令行客户端(svn)和它的所有子命令,也有版本库管理程序(svnadminsvnlook)和它们各自的子命令。

Subversion命令行客户端:svn

为了使用命令行客户端,只需要输入svn和它的子命令[50]以及相关的选项或操作的对象—输入的子命令和选项没有特定的顺序,下面使用svn status的方式都是合法的:

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

你可以在第 3 章 指导教程发现更多使用客户端命令的例子,以及“属性”一节中的管理属性的命令。

svn选项

虽然Subversion的子命令有一些不同的选项,但有的选项是全局的—也就是说,每个选项保证是表示同样的事情,而不管是哪个子命令使用的。举个例子,--verbose-v)一直意味着“冗长输出”,而不管使用它的命令是什么。

--auto-props

开启auto-props,覆盖config文件中的enable-auto-props指示。

--config-dir DIR

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

--diff-cmd CMD

指定用来表示文件区别的外部程序,当svn diff调用时,会使用Subversion的内置区别引擎,默认会提供统一区别输出,如果你希望使用一个外置区别程序,使用--diff-cmd。你可以通过--extensions(本小节后面有更多介绍)把选项传递到区别程序。

--diff3-cmd CMD

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

--dry-run

检验运行一个命令的效果,但没有实际的修改—可以用在磁盘和版本库。

--editor-cmd CMD

指定一个外部程序来编辑日志信息或是属性值。如何设定缺省编辑器见“config”一节editor-cmd小节。

--encoding ENC

告诉Subversion你的提交日志信息是通过提供的字符集编码的,缺省时是你的操作系统的本地编码,如果你的提交信息使用其它编码,你一定要指定这个值。

--extensions (-x) ARGS

指定一个或多个Subversion传递给提供文件区别的外部区别程序的参数,如果你要传递多个参数,你一定能够要用引号(例如,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

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

不自动解锁文件(缺省的提交行为是解锁提交列出的所有文件),更多信息见“锁定”一节

--non-interactive

如果认证失败,或者是不充分的凭证时,防止出现要求凭证的提示(例如用户名和密码)。这在运行自动脚本时非常有用,只是让Subversion失败而不是提示更多的信息。

--non-recursive (-N)

防止子命令迭代到子目录,大多数子命令缺省是迭代的,但是一些子命令—通常是那些潜在的删除或者是取消本地修改的命令—不是。

--notice-ancestry

在计算区别时关注祖先。

--old ARG

使用ARG作为旧的目标。

--password PASS

指出在命令行中提供你的密码—另外,如果它是需要的,Subversion会提示你输入。

--quiet (-q)

请求客户端在执行操作时只显示重要信息。

--recursive (-R)

让子命令迭代到子目录,大多数子命令缺省是迭代的。

--relocate 目的路径[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

操作是针对一个修订版本的属性而不是一个文件或目录的属性。这个开关需要你也要通过--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子命令



[50] 是的,使用--version选项不需要子命令,几分钟后我们会到达那个部分。