本手册是为描述 Subversion 1.6.x 系列而编写的。如果您正在运行不同版本的 Subversion,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅与您的 Subversion 版本相符的本手册版本。
将数据输入 Subversion 的最明显方法是将文件添加到版本控制中,提交对这些文件的更改,等等。但是,除了版本控制的文件数据之外,您的 Subversion 存储库中还存在其他信息。其中一些信息(提交日志消息、锁定注释和一些属性值)往往是文本性质的,并且由用户显式提供。大多数此类信息可以使用 --message
(-m
) 和 --file
(-F
) 选项与相应的子命令一起提供给 Subversion 命令行客户端。
每个选项都有其优缺点。例如,在执行提交操作时,如果您已经准备了一个包含提交日志消息的文本文件,则 --file
(-F
) 非常有效。但是,如果您没有准备,则可以使用 --message
(-m
) 在命令行上提供日志消息。不幸的是,在命令行上撰写除简单的单行消息之外的任何内容都可能很棘手。用户需要更多灵活性——按需进行多行、自由格式的日志消息编辑。
Subversion 支持这一点,允许您指定一个外部文本编辑器,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 也会使用配置的外部文本编辑器。奇怪的是,似乎没有办法使用外部编辑器来交互式提供锁定注释。