JIRA的svn插件是个好用的工具,但是之前提交的svn:log没有记录FIX哪些bug的记录,编辑svn:log需要加入如下hook。
即使修改了历史svn:log,svn plugin并不会重新读取这些svn:log ,-_-! 可能需要重新扫描一遍,如何操作?
http://svn.haxx.se/users/archive-2006-03/0107.shtml
Hi all,
Here I post a pre-revprop-change batch file for Windows NT or later... You
can certainly enhance it with more modifications. You can also derive a
post-revprop-change.cmd from it to backup the old 'snv:log' somewhere...
The only tricky part there was to be able to actually parse the stdin from
the batch file... This is done here with the FIND.EXE command.
Enjoy:
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~
@ECHO OFF
set repos=%1
set rev=%2
set user=%3
set propname=%4
set action=%5
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow changes to svn:log. The author, date and other revision
:: properties cannot be changed
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%propname%'=='svn:log' goto ERROR_PROPNAME
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow modifications to svn:log (no addition/overwrite or deletion)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%action%'=='M' goto ERROR_ACTION
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Make sure that the new svn:log message contains some text.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
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 properties are not allowed. >&2
goto ERROR_EXIT
:ERROR_PROPNAME
echo Only changes to svn:log revision properties 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
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~
philibert
分享到:
相关推荐
在Subversion(简称SVN)中,`pre-revprop-change` 是一个钩子脚本,用于在修改版本库中的修订版本属性之前执行特定的检查和操作。在Windows环境下,通常使用`.bat`批处理文件作为`pre-revprop-change`的实现。此...
`pre-revprop-change` 和 `pre-commit` 是SVN仓库钩子(hooks)脚本,它们在特定事件发生时执行,以实现自定义的行为或验证。 标题"SVN强制日志、日志重新编辑可配置细节"表明我们要讨论如何配置SVN来确保每次提交...
为确保备份过程中的兼容性问题,需要在新创建的仓库目录下的`hooks`子目录中添加一个`pre-revprop-change.bat`脚本文件。这个脚本的作用是允许对版本属性进行修改,以便后续同步操作能够顺利进行。 **操作命令**: ...
步骤三、创建“pre-revprop-change.bat”文件:在“E:\Repositories\k1_svn_bak\hooks”目录下创建文件“pre-revprop-change.bat”,内容如下: @echo off exit 0; 步骤四、修改文件:修改pre-revprop-change.tmpl...
- **步骤一:** 在SVN仓库的`hooks`目录下,找到`pre-revprop-change.tmpl`文件,并将其复制为`pre-revprop-change.bat`。 - **步骤二:** 编辑`pre-revprop-change.bat`文件,内容如下所示: ```bat set repos...
在`pre-revprop-change.bat`文件中,我们可以编写批处理命令或调用其他程序来实现特定的行为。例如,我们可以设定只有特定用户或具备特定权限的用户才能修改日志,或者在修改日志前进行邮件通知等。这个脚本通常位于...
2. 创建pre-revprop-change.bat文件:在hooks目录下创建一个名为pre-revprop-change.bat的文件,用于触发备份机的代码同步。 3. 执行初始化svnsync init:使用svnsync init命令来初始化备份机的代码仓库,指定备份机...
首先,需要将此模板文件复制并重命名为`pre-revprop-change.bat`(对于Windows环境)或`pre-revprop-change`(对于Linux环境)。这一步是启动自定义钩子的必要步骤。 2. **编写钩子逻辑**:接下来,需要编辑这个...
在提供的文件`pre-revprop-change.bat`中,我们可以看到一个Windows环境下的SVN服务器钩子脚本,这个脚本通常位于SVN服务器的`hooks`目录下。当尝试修改历史属性时,SVN会执行这个脚本,如果脚本返回非零值,修改将...
为此,我们可以创建一个`pre-revprop-change.bat`脚本。这个脚本会在尝试修改修订版属性(如日志)时运行。通过检查修改者是否与原始提交者相同,我们可以限制只有提交者本人能修改自己的日志。 ```bat set repos=%...
1. **pre-revprop-change.bat**:这是一个预属性更改钩子脚本,通常用于限制对版本属性的修改,以防止误操作。 2. **post-commit.bat**:提交后钩子脚本,用于在每次提交后执行某些任务,如自动同步仓库到备份...
- **pre-revprop-change**:在修改版本属性前被调用。 - **post-revprop-change**:在修改版本属性后被调用。 ##### 实现预提交检查 在本次示例中,我们将关注如何使用pre-commit钩子来检查提交日志的格式是否正确...
- pre-revprop-change.bat:这是一个在修订版本属性被改变前执行的钩子脚本,用于防止修订版本属性的改变,确保版本库的一致性。 4. 定时任务: - 文档中提到使用批处理文件和计划任务(如Windows的at命令)来...
- **步骤2**:将`pre-revprop-change.bat`脚本复制到版本库目录下的`hooks`子目录中。 - **步骤3**:修改`syncinit.bat`文件中的用户名、密码以及URL信息,并运行该脚本。 - **步骤4**:修改`svnsync.bat`文件中的...
具体来说,可能需要编辑或替换`hooks`目录下的脚本,如`pre-revprop-change.bat`,以及Web服务的配置文件,例如`web.config`,来启用用户密码修改功能。 3. **添加修改密码链接** 在完成文件替换后,当用户登录到...
5.2. 镜像版本库的 pre-revprop-change 钩子 5.3. 镜像版本库的 start-commit 钩子 6.1. 匿名访问的配置实例。 6.2. 一个认证访问的配置实例。 6.3. 一个混合认证/匿名访问的配置实例。 6.4. 禁用所有的路径检查 7.1...