本手册旨在描述 Apache™ Subversion® 的 1.7.x 系列。如果您运行的是其他版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅适合您 Subversion 版本的手册。
将数据导入 Subversion 的最明显方法是将文件添加到版本控制中,提交对这些文件的更改,等等。但除了版本化的文件数据之外,您的 Subversion 存储库中还存在其他信息。其中一些信息(提交日志消息、锁定注释和一些属性值)本质上是文本形式的,由用户显式提供。大多数此类信息可以通过 --message
(-m
) 和 --file
(-F
) 选项与相应的子命令一起提供给 Subversion 命令行客户端。
每个选项都有其优缺点。例如,在执行提交时,如果您已经准备了一个包含提交日志消息的文本文件,则 --file
(-F
) 非常有用。但是,如果您没有准备,则可以使用 --message
(-m
) 在命令行上提供日志消息。不幸的是,在命令行上编写简单的单行消息以外的任何内容都可能很棘手。用户希望有更大的灵活性——按需进行多行、自由格式的日志消息编辑。
Subversion 通过允许您指定一个外部文本编辑器来支持这一点,该编辑器将在需要时启动,为您提供更强大的文本元数据输入机制。有几种方法可以告诉 Subversion 您想使用哪个编辑器。Subversion 在需要启动此类编辑器时,会按以下顺序检查以下内容:
--editor-cmd
命令行选项
SVN_EDITOR
环境变量
editor-cmd
运行时配置选项
VISUAL
环境变量
EDITOR
环境变量
可能,Subversion 库中内置了一个回退值(官方版本中没有)。
这些选项或变量的值都是 shell 要执行的命令行的开头。Subversion 会在该命令行后面追加一个空格和要编辑的临时文件的路径名。因此,要与 Subversion 一起使用,配置的或指定的编辑器需要支持一种调用方式,其中其最后一个命令行参数是要编辑的文件,并且它应该能够就地保存文件并返回零退出代码以指示成功。
如前所述,可以使用外部编辑器为任何提交子命令提供提交日志消息(例如,svn commit 或 import、svn mkdir 或 delete 在提供 URL 目标时等),如果未指定 --message
(-m
) 或 --file
(-F
) 选项,Subversion 会尝试自动启动编辑器。 svn propedit 命令几乎完全围绕着使用外部编辑器构建。从 1.5 版开始,当用户要求它在交互式冲突解决期间启动编辑器时,Subversion 也将使用配置的外部文本编辑器。奇怪的是,似乎没有办法使用外部编辑器来交互式地提供锁定注释。