是否有一种方法可以在Subversion中编辑某个修订的日志消息?我不小心在我的提交消息中写了错误的文件名,这可能会让人困惑。
我已经看到如何在Git中编辑错误的提交消息?,但这个问题的解决方案似乎与Subversion不同(根据svn help commit)。
是否有一种方法可以在Subversion中编辑某个修订的日志消息?我不小心在我的提交消息中写了错误的文件名,这可能会让人困惑。
我已经看到如何在Git中编辑错误的提交消息?,但这个问题的解决方案似乎与Subversion不同(根据svn help commit)。
当前回答
如果您的存储库允许通过pre-revprop-change钩子设置修订属性,您可以更容易地更改日志消息。
svn propedit --revprop -r 1234 svn:log url://to/repository
或者在TortoiseSVN, AnkhSVN和许多其他subversion客户端中,右键单击日志条目,然后“更改日志消息”。
其他回答
如果您的存储库允许通过pre-revprop-change钩子设置修订属性,您可以更容易地更改日志消息。
svn propedit --revprop -r 1234 svn:log url://to/repository
或者在TortoiseSVN, AnkhSVN和许多其他subversion客户端中,右键单击日志条目,然后“更改日志消息”。
svnadmin setlog /path/to/repository -r revision_number --bypass-hooks message_file.txt
执行此命令时,
svn propedit svn:log --revprop -r NNN
以防你看到这条信息
DAV请求失败;有可能 存储库的pre-revprop-change 钩子要么失败,要么不存在
这是因为Subversion不允许您修改日志消息,因为它们是未版本化的,并且将永久丢失。
Unix-hosted SVN
转到Subversion服务器上的hooks目录(将~/svn/reponame替换为存储库的目录)
cd ~/svn/reponame/hooks
删除扩展名
mv pre-revprop-change.tmpl pre-revprop-change
让它可执行(不能做chmod +x!)
chmod 755 pre-revprop-change
源
Windows-hosted SVN
hooks目录中的模板文件不能使用,因为它们是特定于unix的。您需要复制一个Windows批处理文件pre-revprop-change.bat到hooks目录,例如这里提供的目录。
我在svnforum上找到了一个很好的服务器端pre-rev-prop-change钩子的实现:https://www.svnforum.org/forum/opensource-subversion-forums/scripts-contributions/8571-pre-revprop-change-shell-script-allows-commiters-to-change-own-log-within-x-hours
它实现了
用户检查,即只有自己提交的消息可以编辑。 Svn管理员覆盖;管理员可以编辑任何东西。 时间戳比较:只有小于特定时间的提交才能被编辑
从那里获取并随意编辑。我不想在这里复制它,因为我不是原作者,也没有版权声明允许我这样做。
这里有一个方便的变化,我没有看到在常见问题中提到。可以通过指定文本编辑器返回当前消息进行编辑。
svn propedit svn:log --revprop -r N --editor-cmd vim