改变SVN提交信息的追溯?

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

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

我想要

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

有没有一种简单的方法来做到这一点,不包括使用svndumpfilter转储整个存储库?

我在客户端使用TortoiseSVN,在服务器端使用VisualSVN。 (VisualSVN是经典的svn的封装,我可以通过命令行来讨论。)

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

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

您当然可以更改日志消息,这在常见问题解答中已有介绍 。 我不知道VisualSVN的命令行界面是如何工作的,但是对于命令行来说,

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

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

另外,香草SVN有一个命令svnlook这是一种直接与存储库文件工作的pipe理工具。 该工具不理解URL(您必须具有对存储库的文件系统级访问权限),但速度快得多。 语法有点不同,但是您可以使用该工具以相同的方式修改属性。

是的,你可以,但是你需要首先在仓库上启用它。

在存储库中的钩子目录中,是一个名为pre-revprop-change.tmpl的文件。 关于它的function,有几页评论,并且设置为只允许更改日志属性。 要启用它,请将文件重命名为pre-revprop-change并使其可执行(假设您使用Windows来托pipePOSIX托pipe的版本,则可能会发现此消息有用)。

一旦存储库允许,您可以使用Tortoise在提交的右键菜单中更改提交的日志消息,也可以使用命令行。

svn:log svn propset上使用svn propset 。 在svn书中的例子 。

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

如果您已经在工作目录中,上面的URL是可选的。 编辑器将出现,以便消息可以改变。

刚刚来到这个post与确切的问题,在Windows服务器上使用SVT的客户端和VisualSVN。

如果您碰巧遇到了“DAV请求失败”错误消息,请查看Andrew Aylett的答案,并在您的存储库挂接子目录中编辑“pre-revprop-change.tmpl”。

一旦完成,在上下文菜单中点击“编辑日志消息”应该终于工作!