本手册用于描述 Subversion 1.6.x 系列。如果您正在运行其他版本的 Subversion,强烈建议您访问 https://svnbook.subversion.org.cn/,并查阅适合您 Subversion 版本的文档。

名称

svn commit (ci) — 将更改从工作副本发送到仓库。

概要

svn commit [PATH...]

描述

将更改从工作副本发送到仓库。如果您没有使用 --file (-F) 或 --message (-m) 选项在提交时提供日志消息,svn 将启动您的编辑器以供您撰写提交消息。请参阅 “配置”部分 中的 editor-cmd 列表条目。

svn commit 将发送它找到的任何锁定令牌,并且将释放提交的所有 PATH(递归)上的锁定,除非传递了 --no-unlock 选项。

[Tip] 提示

如果您开始提交,并且 Subversion 启动您的编辑器来撰写提交消息,您仍然可以中止而不提交您的更改。如果您想取消提交,只需退出编辑器而不保存您的提交消息,Subversion 将提示您中止提交、继续无消息或再次编辑消息。

选项

--changelist ARG
--depth ARG
--editor-cmd CMD
--encoding ENC
--file (-F) FILENAME
--force-log
--keep-changelists
--message (-m) MESSAGE
--no-unlock
--quiet (-q)
--targets FILENAME
--with-revprop ARG

示例

使用命令行上的提交消息以及当前目录的隐式目标(.)提交对文件的简单修改

$ svn commit -m "added howto section."
Sending        a
Transmitting file data .
Committed revision 3.

使用名为 msg 的文件中的提交消息提交对文件 foo.c(在命令行上显式指定)的修改

$ svn commit -F msg foo.c
Sending        foo.c
Transmitting file data .
Committed revision 5.

如果您想使用版本控制下的文件作为您的提交消息,并使用 --file (-F),您需要传递 --force-log 选项

$ svn commit -F file_under_vc.txt foo.c
svn: The log message file is under version control
svn: Log message file is a versioned file; use '--force-log' to override

$ svn commit --force-log -F file_under_vc.txt foo.c
Sending        foo.c
Transmitting file data .
Committed revision 6.

要提交计划删除的文件

$ svn commit -m "removed file 'c'."
Deleting       c

Committed revision 7.