有谁知道我如何能够在 SVN 事务中更新提交消息
在挂钩中更改事务的内容是(即使理论上可能)非常不安全且不推荐的策略。简而言之:永远不要这样做,如果您想获得可预测的结果!
如果您必须在日志消息中进行替换,则必须在下一个独立提交(可能发生在 post-commit 钩子中)使用 propedit|propdel-propset (用于管理修订属性的第二种命令形式)
提交后挂钩任务的简短测试
第 4 版的起点
>svn log file:///Z:/PE-TEST/trunk
------------------------------------------------------------------------
r4 | Badger | 2013-02-16 14:41:46 +0600 (Сб, 16 фев 2013) | 1 line
Replacement
------------------------------------------------------------------------
r3 | Badger | 2013-02-16 14:33:46 +0600 (Сб, 16 фев 2013) | 1 line
Extended version
------------------------------------------------------------------------
r2 | Badger | 2013-02-16 14:32:00 +0600 (Сб, 16 фев 2013) | 1 line
Initial data
------------------------------------------------------------------------
r1 | Badger | 2013-02-16 14:27:49 +0600 (Сб, 16 фев 2013) | 1 line
Imported folder structure
------------------------------------------------------------------------
第一次尝试
>svn propset svn:log --revprop -r 4 "Replacement for #1234" file:///Z:/PE-TEST/
svn: E165006: Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
pre-revprop-change 钩子
type z:\PE-TEST\hooks\pre-revprop-change.bat
exit 0
最后的行动
>svn propset svn:log --revprop -r 4 "Replacement for #1234" file:///Z:/PE-TEST/
property 'svn:log' set on repository revision 4
测试结果
>svn log file:///Z:/PE-TEST/trunk -r 4
------------------------------------------------------------------------
r4 | Badger | 2013-02-16 14:41:46 +0600 (Сб, 16 фев 2013) | 1 line
Replacement for #1234
------------------------------------------------------------------------
一些笔记
您可能希望使用 -q 选项抑制钩子内 propset 的所有输出,并从文本文件中写入(使用 propget)/读取(使用 propset)日志数据(用于获取的管道,-F file
用于设置的选项)