有没有办法在Subversion中编辑某个修订版的日志消息?我不小心在我的提交消息中写了错误的文件名,这可能会让人感到困惑 .
我见过How do I edit an incorrect commit message in Git?,但是这个问题的解决方案似乎与Subversion不相似(根据 svn help commit
) .
有没有办法在Subversion中编辑某个修订版的日志消息?我不小心在我的提交消息中写了错误的文件名,这可能会让人感到困惑 .
我见过How do I edit an incorrect commit message in Git?,但是这个问题的解决方案似乎与Subversion不相似(根据 svn help commit
) .
9 回答
这是一个方便的变化,我在常见问题中没有提到 . 您可以通过指定文本编辑器返回当前消息以进行编辑 .
如果你使用像eclipse这样的IDE,你可以使用这种简单的方法 .
在那
right click on the revision id for your commit and select 'Set commit properties'
.您可以从此处根据需要修改消息 .
Subversion FAQ涵盖了这一点,但使用了一堆令人困惑的未定义术语,如
REPOS_PATH
而没有给出任何实际的例子 .可能需要几次尝试才能使其工作,因此请将更新的提交消息保存在文件中 . 与
svn-commit.tmp
文件不同,如果出现问题,Subversion将不会保留您的输入 .在您的工作目录中,运行
svn propedit -r N --revprop svn:log
编辑提交消息 . 如果那样有效,太好了!但它可能不会,因为
svn:log
revision属性是无版本的,默认情况下Subversion将阻止您使用hook scriptpre-revprop-change
覆盖它,或者您没有这样的钩子的错误消息 .要更改挂钩,您需要访问托管存储库的文件系统 .
svn info
将告诉您存储库根目录 . 假设它是~/svnrepo
.cd
至~/svnrepo/hooks
是否有
pre-revprop-change
或pre-revprop-change.bat
脚本?如果是这样,如果您尝试更改svn:log
,请暂时注释掉中止的部分 .否则,在Windows上,创建一个名为
pre-revprop-change.bat
的空白文件 . 这是一种方法:在工作副本中,再次运行
svn propedit -r N --revprop svn:log
撤消对
~/svnrepo/hooks/svn-revprop-change
的更改(.bat
)如果您的存储库允许通过pre-revprop-change挂钩设置修订版属性,则可以更轻松地更改日志消息 .
或者在TortoiseSVN,AnkhSVN以及可能的许多其他subversion客户端中,通过右键单击日志条目然后“更改日志消息” .
在Windows上,使用Tortoise SVN客户端:
在日志消息窗口中
如果它不起作用,可能是因为服务器上的SVN设置方式,请在此处阅读其他响应 .
基本上,您必须具有管理员权限(直接或间接)到存储库才能执行此操作 . 您可以配置存储库以允许所有用户执行此操作,也可以直接在服务器上修改日志消息 .
参见Subversion FAQ的this part(强调我的):
运行此命令时
以防万一你看到这条消息:
这是因为Subversion不允许您修改日志消息,因为它们是未版本化的并且将永久丢失 .
转到Subversion服务器上的hooks目录(将〜/ svn / reponame替换为存储库的目录)
删除扩展名
让它可执行(不能做chmod x!)
Source
我最近也负责这项任务 .
我们希望允许我们的程序员只修改他们自己的提交消息,并限制他们允许这样做多久 . 我们决定允许他们修改那天发布的任何日志消息,修复拼写错误等 .
在网上看了几个其他的例子我一起攻击了这个,我们在windows环境中,所以这是
pre-revprop-change.bat
的内容:编辑:最初的想法来自this thread: