svn commit (ci)

优质
小牛编辑
117浏览
2023-12-01

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

大纲

svn commit [PATH...]

描述

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

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

[提示]提示

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

选项

--changelist (--cl) 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.

提交 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.