`
cuiyadll
  • 浏览: 204660 次
文章分类
社区版块
存档分类
最新评论

Svn修改日志的方法

    博客分类:
  • svn
svn 
阅读更多
1。强制写日志
在每次提交的时候写明提交的目的是一个很好的习惯,Subversion默认没有提供,但是可以通过钩子实现:将下面的代码存为放到版本库的hooks目录下即可,当你不写日志提交的话就会报告错误。
文件名:pre-commit-log.bat
@echo off
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 5 characters
svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo Empty log message not allowed. Commit aborted! 1>&2
exit 1

2。可以修改历史日志
历史上的日志写的不好,我们希望修改,默认对Subversion是不允许的,并且会提示需要创建pre-revprop-change钩子。最简单的方式是创建一个空白的pre-revprop-change.bat文件放到版本库的hooks目录下,但是这种方式不够严格,用户具备了修改所有属性的权利,例如修改作者的权利(可以提交垃圾然后栽赃嫁祸了)。所以要限制用户只能修改日志,所以有了下面的代码,将其存为pre-revprop-change.bat放到版本库的hooks目录下即可。
文件名:pre-revprop-change.bat
REM SVN pre-revprop-change hook allows edit of logmessages from TSVN

setlocal
set REPOS=%1
set REV=%2
set USER=%3
set PROPNAME=%4
set ACTION=%5

if not "%ACTION%"=="M" goto refuse
if not "%PROPNAME%"=="svn:log" goto refuse
goto OK

:refuse
echo Cann't set %PROPNAME%/%ACTION%, only svn:log is allowed 1>&2
endlocal
exit 1

:OK
endlocal
exit 0







摘自:http://www.cnblogs.com/greatqn/articles/1272769.html



版本库生成后,hooks目录下就存在一些钩子脚本的模板,用户可以作为参考。把pre-revprop-change.tmpl复制为pre-revprop-change.bat,再修改里面的脚本,钩子就设置好了。



for /f "usebackq" %%k in (`svnlook author %1 -r%2`) do @set var=%%k

if "%3" == "%var%" goto test
if "%3" == "li"    goto test
exit 1

:test
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1



只允许用户修改自己的svn日志的钩子脚本:
分享到:
评论

相关推荐

    svn提交日志导出工具v4.6

    在软件版本控制的世界里,Subversion(简称svn)是一款广泛使用的版本控制系统,它允许开发者跟踪和管理代码的修改历史,协同工作并保持代码库的一致性。对于svn的日常管理,有一款名为“svn提交日志导出工具v4.6”...

    svn强制写日志和可修改log功能

    在版本控制系统Subversion(简称svn)中,日志(log)功能是用于记录每一次提交更改的详细信息,包括更改的原因、涉及的文件等。对于团队协作来说,规范的日志信息有助于理解代码变更历史,便于问题排查和代码审查。...

    svn提交日志导出工具v4.5

    【svn提交日志导出工具v4.5】是一款基于Java Swing界面的实用程序,专为开发者设计,用于轻松地导出Subversion(SVN)仓库的提交日志。该工具利用了强大的SVNKit库,这是一个纯Java实现的SVN客户端库,使开发者能够...

    修改SVN日志

    3. **不可逆性**:更改日志后,之前的版本状态无法恢复,可能导致重要信息的永久丢失。 #### 如何启用修改日志功能 尽管默认禁用,但SVN提供了强大的钩子系统,允许管理员通过自定义脚本来控制和扩展SVN的行为。要...

    svn 日志导出 增量补丁工具

    通过这个工具,我们可以从svn的日志中筛选出特定的修改,然后生成只包含这些修改的增量补丁包。 首先,让我们了解什么是svn日志。svn日志记录了项目历史上的每一次提交,包括提交者、提交时间、提交消息等信息。...

    svn提交日志长度限制脚本

    svn提交日志长度限制脚本,其中svnlook.exe所在路径修改成你实际安装svn server路径即可。

    SVN属性配置:必须输入日志/日志模版

    标题中的“SVN属性配置:必须输入日志/日志模版”指的是在使用Subversion(SVN)版本控制系统时,对于提交操作的一个规范设置。SVN允许用户为每个文件或目录设置特定的属性,这些属性可以控制提交行为,比如强制用户...

    svn提交日志导出工具v4.1

    由于开发人员对日常工作难免提交svn文件,在项目发版...本工具是导出svn服务器提交日志,可以按照提交人过滤,提交日期过滤,并且可以生成修改文件清单并有去重功能。本版本是新版本添加了若干功能,详见里面的说明文件

    根据SVN的更新日志导出部署目录结构的更新文件

    根据SVN更新日志,结合eclispse/或其他IDE工具导出war包解压出来就是部署的目录结构了;再把开发的工具和解压的全量更新文件以及导出的SVN更新日志放在同级目录,利用插件把SVN更新日志的增量更新文件提取生成同部署...

    svn控制修改日志信息的脚本

    控制SVN只允许修改本人日志信息,不允许修改作者及其他人日志信息的脚本。

    svn强制写日志hooks

    本文将深入探讨“svn强制写日志hooks”这一主题,它与Subversion的钩子脚本(hooks)密切相关,这些脚本允许在执行特定操作时执行自定义的服务器端逻辑,例如提交日志消息。 首先,了解“hooks”在svn中的作用至关...

    svn提交设置--日志

    1,svn提交时强制填写日志。 2,修改日志只能修改自己的。 压缩包包含两个文件:pre-commit,pre-revprop-change。 更新:解决提示显示的乱码问题。 使用方法:...

    用脚本解析一个SVN STATUS日志全解

    SVN提供了一种方式来跟踪文件和目录的更改,方便团队成员之间的协同工作。当我们需要了解项目中文件的状态时,可以使用`svn status`命令,它会列出所有未提交、冲突或被修改的文件。而有时,为了更方便地分析这些...

    SVN强制日志、日志重新编辑可配置细节

    在SVN中,提交操作是记录更改的关键步骤,而日志消息是描述这些更改的重要注释。`pre-revprop-change` 和 `pre-commit` 是SVN仓库钩子(hooks)脚本,它们在特定事件发生时执行,以实现自定义的行为或验证。 标题...

    TortoiseSVN修改日志的设置

    标题“TortoiseSVN修改日志的设置”涉及到的是一个关于版本控制系统TortoiseSVN的使用技巧,特别是如何调整其日志消息的管理。TortoiseSVN是一款非常流行的Subversion(SVN)客户端,它为Windows用户提供了一个图形...

    SVN里通过hook钩子填写日志信息

    通过这种方式,SVN的`pre-commit`钩子可以帮助维护良好的代码版本控制实践,提高团队协作效率,并减少因日志信息不完整或不清楚导致的沟通成本。因此,了解并合理利用SVN的hook机制,是每个SVN管理员和开发者必备的...

    SVN日志插件

    在本文中,我们将深入探讨"SVN日志插件"与Scintilla的关系,以及如何进行开发。 1. **SVN(Subversion)基础**: SVN,全称Apache Subversion,是一种版本控制系统,用于管理文件和目录的历史版本。它允许团队协作...

    svn功能源代码py

    if(svn更改)---commit成功 返回一个版本号 [version]=1,2,3,4,etc else if(未更改)----commit失败 printf“no modification” 7.revert:还原所有 =update 默认 (~) 8.log [version] if [version]=n 显示n的...

    svn限制强制写日志及只能修改自己日志脚本

    ### SVN限制强制写日志及只能修改自己日志脚本 #### 1. SVN客户端修改日志功能(且只能修改自己日志) 在Windows环境下,为了实现SVN客户端的修改日志功能,并确保用户只能修改自己的日志记录,可以通过自定义...

    基于Svn补丁日志自动生成Java项目补丁包[python]

    3. **文件变更提取**:脚本需要识别出在Svn日志中提及的所有修改、添加或删除的文件。这些文件通常是Java源代码、配置文件或其他项目资源,对于构建补丁包至关重要。 4. **补丁生成**:利用Svn的命令行工具(如`svn...

Global site tag (gtag.js) - Google Analytics