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
=========================
other
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日志的钩子脚本
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/starnight_cbj/archive/2010/09/25/5904654.aspx
分享到:
相关推荐
《svn提交日志导出工具v4.6详解》 在软件版本控制的世界里,Subversion(简称svn)是一款广泛使用的版本控制系统,它允许开发者跟踪和管理代码的修改历史,协同工作并保持代码库的一致性。对于svn的日常管理,有一...
【svn提交日志导出工具v4.5】是一款基于Java Swing界面的实用程序,专为开发者设计,用于轻松地导出Subversion(SVN)仓库的提交日志。该工具利用了强大的SVNKit库,这是一个纯Java实现的SVN客户端库,使开发者能够...
由于开发人员对日常工作难免提交svn文件,在项目发版...本工具是导出svn服务器提交日志,可以按照提交人过滤,提交日期过滤,并且可以生成修改文件清单并有去重功能。本版本是新版本添加了若干功能,详见里面的说明文件
2. **第三方工具或服务**:有一些第三方工具和服务提供了修改已提交日志的功能,如`Subversion Edge`或`VisualSVN Server`等。这些工具通常提供图形化界面,使得操作更为直观。 总的来说,通过编写和配置svn钩子...
1,svn提交时强制填写日志。 2,修改日志只能修改自己的。 压缩包包含两个文件:pre-commit,pre-revprop-change。 更新:解决提示显示的乱码问题。 使用方法:...
svn提交日志长度限制脚本,其中svnlook.exe所在路径修改成你实际安装svn server路径即可。
在SVN中,`svn:log`属性是用于存储提交日志的,当用户执行`svn commit`命令时,系统会检查这个属性,如果未设置或者日志消息为空,提交将会被阻止,以确保每次提交都有清晰的变更记录。这对于团队协作和代码管理至关...
根据SVN更新日志,结合eclispse/或其他IDE工具导出war包解压出来就是部署的目录结构了;再把开发的工具和解压的全量更新文件以及导出的SVN更新日志放在同级目录,利用插件把SVN更新日志的增量更新文件提取生成同部署...
### 修改SVN日志:深入理解与实践 #### 核心知识点解析 **Subversion (SVN)** 是一款广泛使用的版本控制系统,它帮助开发者管理代码变更、协作开发以及追踪历史记录。SVN的一个关键特性是其日志系统,用于记录每一...
由于开发人员对日常工作难免提交svn文件,在项目发版的时候...本工具是导出svn服务器提交日志,可以按照提交人过滤,提交日期过滤,并且可以生成修改文件清单并有去重功能 本资源是源码,如果有不足之处,请指出,谢谢
### SVN限制强制写日志及只能修改自己日志...通过以上步骤,不仅可以限制用户只能修改自己的日志,而且还能确保每次提交都必须带有日志信息,同时也能实现BugFree与SVN的有效整合,从而提高团队的工作效率和代码质量。
svn日志记录了项目历史上的每一次提交,包括提交者、提交时间、提交消息等信息。通过查询日志,开发者可以查看过去对代码所做的更改,找出特定的修改或回溯错误。 筛选svn日志通常是通过命令行工具`svn log`完成的...
在团队环境中,通过SVN的"更新"和"提交"功能,开发者可以同步远程仓库的最新代码,同时将自己的修改推送到仓库。这确保了所有成员都在同一版本上工作,避免了冲突和数据丢失。 ### 8. 解决冲突 当多人对同一部分...
通过修改`pre-commit.bat`,我们可以添加检查提交日志内容是否达到最小长度的条件。例如,如果提交日志少于指定字符数(例如10个字符),脚本会阻止提交并显示错误信息,提示用户提交必须包含有意义的日志。这样可以...
在默认情况下,Subversion不允许修改已提交的修订版本的日志,但通过配置`pre-revprop-change`脚本,可以启用这一功能。 在`pre-revprop-change.bat`文件中,我们可以编写批处理命令或调用其他程序来实现特定的行为...
#### 一、SVN提交日志(Log)的重要性 版本控制系统如SVN(Subversion)对于软件开发团队而言是非常重要的工具之一,它可以帮助团队成员协同工作并管理项目的源代码历史记录。而在提交代码时填写合适的提交日志(Log)...
SVN允许团队成员对代码进行版本控制,跟踪每一次修改,以便于协作和回溯。在某些场景下,我们需要在 SVN 提交代码时自动发送邮件通知,这样可以让团队成员实时了解项目的更新情况。本文将详细讲解如何实现"svn提交...
由于开发人员对日常工作难免提交svn文件,在项目发版的时候总是要记住自己修改了哪些文件 本工具是导出svn服务器提交日志,可以按照提交人过滤,提交日期过滤,并且可以生成修改文件清单 比上一个版本添加了去重功能
当多个人同时修改同一份文件的不同部分时,SVN 在合并这些更改时可能会产生冲突。解决冲突的方法包括手动解决(通过比较本地版本和服务器版本,决定保留哪些更改)、使用SVN提供的冲突解决工具,或者与团队成员沟通...
可自动提交预设的文件,利用windows的计划任务可每天定时对文件进行提交。 可自行修改要提交的文件路径及日志的填写。