我想将大量SVN提交消息重写到不同的结构,例如前缀一个类别。从:
"foo" now accepts "bar" format for connection string.
我想要
core - database - "foo" now accepts "bar" format for connection string.
是否有一种简单的方法可以不包括使用svndumpfilter
转储整个存储库?
我在客户端使用TortoiseSVN,在服务器端使用VisualSVN。 (VisualSVN是经典svn
的包装器,我也可以通过命令行与之交谈。)
答案 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:log
。 Examples 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”子目录。
完成此操作后,点击上下文菜单中的“编辑日志消息”应该最终有效!