我可以回去修改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“设置提交属性”,即可更改注释和/或作者。