我可以回去修改SVN签入的评论吗?

我在SVN中发表了一个错误。 我可以在签入后进行编辑吗?

提交消息是“未版本化的属性” ,例如,可以使用svn propset命令进行更改

$ svn propset --revprop -r 25 svn:log "Journaled about trip to New York." property 'svn:log' set on repository revision '25' 

这是在版本25上设置名为“svn:log”的修订版本属性

configurationsubversion以允许修改属性更改

由于这些版本是未版本控制的,因此除非您提供pre-revprop-change钩子脚本,否则默认的subversion安装不会让您修改这些属性。

下面是一个典型的脚本,来自我的系统上的/ var / lib / svn / hooks / pre-revprop-change:

 #!/bin/sh REPOS="$1" REV="$2" USER="$3" PROPNAME="$4" ACTION="$5" if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then echo "$1 $2 $3 $4 $5" >> /var/lib/svn/logchanges.log exit 0; fi echo "Changing revision properties other than svn:log is prohibited" >&2 exit 1 

这会将更改logging到svn:log版本属性中,并允许使用出口0进行编辑,而通过使用出口1来拒绝​​任何其他版本属性更改。请参阅patmortech对Windows的等价答案。

要启用修订版本属性修改,您需要创build一个pre-revprop-change钩子脚本。 可以在这里阅读: http : //svnbook.red-bean.com/en/1.0/ch05s02.html (查找钩脚本部分)。

对于Windows,这里是一个链接到一个示例batch file,只允许更改日志消息(不是其他属性): http : //ayria.livejournal.com/33438.html 。 基本上将下面的代码复制到一个文本文件中,并将其命名为revprop-change.bat并将其保存在存储库的/ hooks子目录中。

 @ECHO OFF :: Set all parameters. Even though most are not used, in case you want to add :: changes that allow, for example, editing of the author or addition of log messages. set repository=%1 set revision=%2 set userName=%3 set propertyName=%4 set action=%5 :: Only allow the log message to be changed, but not author, etc. if /I not "%propertyName%" == "svn:log" goto ERROR_PROPNAME :: Only allow modification of a log message, not addition or deletion. if /I not "%action%" == "M" goto ERROR_ACTION :: Make sure that the new svn:log message is not empty. set bIsEmpty=true for /f "tokens=*" %%g in ('find /V ""') do ( set bIsEmpty=false ) if "%bIsEmpty%" == "true" goto ERROR_EMPTY goto :eof :ERROR_EMPTY echo Empty svn:log messages are not allowed. >&2 goto ERROR_EXIT :ERROR_PROPNAME echo Only changes to svn:log messages are allowed. >&2 goto ERROR_EXIT :ERROR_ACTION echo Only modifications to svn:log revision properties are allowed. >&2 goto ERROR_EXIT :ERROR_EXIT exit /b 1 

对日志消息进行快速更改而不必创buildpre-revprop-change钩子脚本的方法是使用以下svnadmin 命令 :

 svnadmin setlog --bypass-hooks REPOS_PATH -r N FILE 

其中REPOS_PATH是服务器上存储库的path(例如/ srv / svn / repository), N是版本号(例如25),FILE是包含正确提交日志条目的文本文件。

有两件事:这需要文件系统访问存储库文件,但创buildpre-revprop-change钩子脚本也是如此…其次,这个命令将绕过任何可能存在的钩子脚本,所以谨慎使用…

使用龟SVN将使这非常非常容易为您。 只需打开日志消息窗口,右键单击要编辑的修订日志,然后从上下文菜单中select编辑日志。

在Tortoise SVN中,您可以按照以下步骤操作。
1.转到Repository Browser。
2.右键单击您要处理的文件夹。
3.点击显示日志。
4.在修订列表中,select并右键单击所需的修订。
5.单击编辑日志消息。

你现在可以在svn checkin版本中编辑你的评论。

谢谢!

 svn propset svn:log --revprop -r <REVISION> "My corrected log message" <PATH-TO-REPOSITORY> 

在使用Subclipse的Eclipse(或Rational Application Developer)中:

select“团队” – >“显示历史logging”,然后右键单击要更改其注释的修订版本,然后select“设置提交属性”,即可更改注释和/或作者。