提问人:Pekka 提问时间:2/2/2010 最后编辑:bahrepPekka 更新时间:2/10/2017 访问量:60483
追溯性地更改 SVN 提交消息?
Change SVN commit message retroactively?
问:
我想将大量 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
答:
在酒店使用。svn 书中的例子。svn propset
svn:log
是的,可以更改提交消息。它们作为修订的属性实现,类似于常规文件属性。
在 TortoiseSVN 日志窗口中,您可以右键单击提交并选择“编辑日志消息”。
评论
hooks
pre-revprop-change.tmpl
pre-revprop-change.bat
您当然可以追溯更改日志消息,常见问题解答中对此进行了介绍。我不确定 VisualSVN 的命令行界面是如何工作的,但对于 vanilla svn 来说,命令将是
svn propset -r N --revprop svn:log "new log message" URL
如果要在不转储存储库和重新加载的情况下对所有修订执行此操作,则可以编写此命令的脚本以处理所有修订的列表。这样做需要一些时间,具体取决于存储库的大小,但原则上没有理由不能这样做,并且它不涉及转储和重新加载。
此外,vanilla SVN 有一个命令,它是一种直接处理存储库文件的管理工具。该工具不理解 URL(您必须具有对存储库的文件系统级访问权限),但速度要快得多。语法略有不同,但您可以使用该工具以相同的方式修改属性。svnlook
评论
svn propedit -r N --revprop svn:log
set SVN_EDITOR=notepad.exe
是的,您可以,但您需要先在存储库上启用它。
在存储库的 hooks 目录中,有一个名为 pre-revprop-change.tmpl 的文件。它有几页关于它的作用的评论,并设置为只允许更改日志属性。要启用它,请将文件重命名为 pre-revprop-change 并使其可执行(我假设是 POSIX 托管的 Subversion,如果您使用 Windows 进行托管,您可能会发现此消息很有用)。
一旦存储库允许,您可以使用 Tortoise 从提交的右键菜单中更改提交的日志消息,也可以使用命令行。
评论
刚刚遇到了这篇文章,遇到了确切的问题,在 Windows 服务器上使用 Tortoise SVN 作为客户端和 VisualSVN。
如果您碰巧收到“DAV 请求失败”错误消息,请查看 Andrew Aylett 的答案,然后在存储库钩子目录中编辑“pre-revprop-change.tmpl”。
完成此操作后,点击上下文菜单中的“编辑日志消息”应该终于可以工作了!
svn propedit -r N --revprop svn:log URL
URL
如果您已经在工作目录中,则上面是可选的。然后会出现一个编辑器,以便可以更改消息。
评论