This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.

名称

svn commit (ci) — 把工作副本里的修改发送到仓库中.

大纲

svn commit [PATH...]

描述

把工作副本里的修改发送到仓库中. 如果用户没有用选项 --file (-F) 或 --message (-m) 提供日志消息, svn 将打开一个文本编辑器供用户编写提交日志, 见 “通用配置选项”一节.

如果没有带上选项 --no-unlock, svn commit 会把所有已提交的 PATH 上的锁令牌 (如果有的话) 发送给仓库, 并在提交完成后解锁.

[提示] 提示

如果用户已经开始提交并且 Subversion 已经启动了一个文本编辑器 等待用户输入提交日志, 此时仍然可以中止提交. 如果用户希望中止提交, 只需要不保存提交日志并退出编辑器, 此时 Subversion 将会询问用户是 想中止提交, 还是不输入日志直接提交, 还是重新打开编辑器编写日志.

选项

示例

把提交日志直接写在命令行上, 如果没有指定目标文件, 则默认提交的是 当前目录 (.) 下的所有修改:

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

提交 foo.c 的修改, 并从文件 msg 读取提交日志:

$ 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: E205004: 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.