本手册旨在描述 Subversion 1.4。如果您正在运行较新的 Subversion 版本,我们强烈建议您访问 https://svnbook.subversion.org.cn/ 并查阅与您的 Subversion 版本相符的版本。

名称

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

概要

svn commit [PATH...]

描述

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

svn commit 会发送它找到的所有锁定令牌,并释放对所有提交的 PATHS(递归地)的锁定,除非传递了 --no-unlock 选项。

提示

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

替代名称

ci(“check in”的缩写;不是“co”,它是“checkout”的缩写)

更改

工作副本,仓库

访问仓库

选项

--message (-m) TEXT
--file (-F) FILE
--quiet (-q)
--no-unlock
--non-recursive (-N)
--targets FILENAME
--force-log
--username USER
--password PASS
--no-auth-cache
--non-interactive
--encoding ENC
--config-dir DIR

示例

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

$ 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 选项,则需要传递 --force-log 选项

$ svn commit --file 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 --file 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.