85

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

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

我想

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

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

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

4

6 回答 6

98

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

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

于 2010-02-02T13:35:14.700 回答
59

您当然可以追溯更改日志消息,常见问题解答中对此进行了介绍。我不确定 VisualSVN 的命令行界面是如何工作的,但对于 vanilla svn,命令将是

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

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

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

于 2010-02-02T13:36:42.173 回答
26

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

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

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

于 2010-02-02T13:43:18.370 回答
7

svn propsetsvn:log物业上使用。svn 书中的例子

于 2010-02-02T13:34:49.727 回答
2

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

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

于 2014-01-02T23:11:45.507 回答
1

刚刚遇到了这个问题,在 Windows 服务器上使用 Tortoise SVN 作为客户端和 VisualSVN。

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

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

于 2013-08-30T09:46:45.127 回答