追溯更改SVN提交消息?

时间:2010-02-02 13:29:37

标签: svn tortoisesvn visualsvn-server

我想将大量SVN提交消息重写到不同的结构,例如前缀一个类别。从:

"foo" now accepts "bar" format for connection string.

我想要

core - database - "foo" now accepts "bar" format for connection string.

是否有一种简单的方法可以包括使用svndumpfilter转储整个存储库?

我在客户端使用TortoiseSVN,在服务器端使用VisualSVN。 (VisualSVN是经典svn的包装器,我也可以通过命令行与之交谈。)

6 个答案:

答案 0 :(得分:96)

是的,可以更改提交消息。它们作为修订版本的属性实现,类似于常规文件属性。

在TortoiseSVN Log窗口中,您可以右键单击提交并选择“编辑日志消息”。

答案 1 :(得分:58)

您当然可以追溯更改日志消息,它已涵盖in the FAQ。我不确定VisualSVN的命令行界面是如何工作的,但对于vanilla svn,命令将是

svn propset -r N --revprop svn:log "new log message" URL

如果要在不转储存储库并重新加载的情况下对所有修订执行此操作,则可以编写此命令的脚本以处理所有修订的列表。这样做需要一些时间,具体取决于存储库的大小,但原则上没有理由不能这样做,并且它不涉及转储和重新加载。

此外,vanilla SVN有一个命令svnlook,它是一种直接与存储库文件一起工作的管理工具。该工具不理解URL(您必须具有对存储库的文件系统级访问权限),但 更快。语法略有不同,但您可以使用该工具以相同的方式修改属性。

答案 2 :(得分:26)

是的,您可以,但您需要先在存储库中启用它。

在存储库的hooks目录中,是一个名为pre-revprop-change.tmpl的文件。它有几页关于它的作用的评论,并且设置为仅允许更改日志属性。要启用它,请将文件重命名为pre-revprop-change并使其可执行(我假设使用POSIX托管的subversion,如果您使用Windows进行托管,则可能会发现this message有用)。

一旦存储库允许,您可以使用Tortoise从提交上的右键单击菜单更改提交的日志消息,或者您可以使用命令行。

答案 3 :(得分:7)

svn propset媒体资源上使用svn:logExamples in the svn book

答案 4 :(得分:2)

svn propedit -r N --revprop svn:log URL

如果您已经在工作目录中,则上面的

URL是可选的。然后会出现一个编辑器,以便可以更改消息。

答案 5 :(得分:1)

刚刚在这篇文章中提到了确切的问题,在Windows服务器上使用了Tosoise SVN for client和VisualSVN。

如果您碰巧有“DAV请求失败”错误消息,请查看Andrew Aylett's answer并在您的存储库挂钩中编辑“pre-revprop-change.tmpl”子目录。

完成此操作后,点击上下文菜单中的“编辑日志消息”应该最终有效!