TortoiseSVN中的pre-revprop-change钩子

时间:2009-06-17 13:27:06

标签: svn tortoisesvn

这里有TortoiseSVN的新手。我需要更改我对subversion进行的一些提交的日志消息。我只想进行更改,然后让所有内容恢复到之前的状态,这意味着在提交后您无法更改任何内容。

根据这篇文章(What is a pre-revprop-change hook in SVN, and how do I create it?),我知道你必须创建一个pre-revprop-change.bat文件来执行此操作。

我的问题是,如果我只是添加这个bat文件,对日志消息进行更改,然后删除bat文件,设置是否会恢复到以前的状态(例如日志消息无法使用)..或者我是我自己运行bat文件然后拿出另一个脚本来撤消更改?

谢谢!

3 个答案:

答案 0 :(得分:4)

对不起,我在原来的答案中误解了你的问题。

为了在版本上正确使用svn propedit命令(如svn:log,这是日志消息属性),您需要一个pre-revprop-change挂钩,因为默认行为是拒绝修改属性更改。添加pre-revprop-change钩子的最简单方法是复制pre-revprop-change.tmpl文件(你可以在你的svn目录中的/ repository-name / hooks中找到),调用它之前revprop-change并使其可执行(chmod a+x)。

运行propedit命令后,可以删除挂钩以恢复默认行为,也可以将其更改为始终以非零返回码退出。

答案 1 :(得分:2)

另一种选择是使用svnadmin来更改日志消息:

echo "My new commit message." > newmsg.txt
svnadmin setlog path/to/repository -r nnn newmsg.txt --bypass-hooks

其中nnn是修订号。

答案 2 :(得分:0)

使用this question中接受的答案获取pre-revprop-change挂钩代码。制作文件并将其放在存储库的hooks目录中。现在您可以更改日志消息。如果您不想再更改日志消息,请删除pre-revprop-change.bat。