本文档尚未完善,内容可能随时更改,可能无法准确描述任何已发布的 Apache™ Subversion® 软件版本。 建议您不要将此页面设为书签或将其推荐给他人。 请访问 https://svnbook.subversion.org.cn/ 获取此书的稳定版本。
将数据导入 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 在交互式冲突解决过程中启动编辑器时,Subversion 也将使用配置的外部文本编辑器。 奇怪的是,似乎没有办法使用外部编辑器来交互式地提供锁定注释。