转载:http://hi.baidu.com/tsd3698/blog/item/2539164525db5c3c879473f6.html
找了半天这位最好了,能解决问题亲测
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
分享到:
相关推荐
在版本控制系统Subversion(简称svn)中,日志(log)功能是用于记录每一次提交更改的详细信息,包括更改的原因、涉及的文件等。对于团队协作来说,规范的日志信息有助于理解代码变更历史,便于问题排查和代码审查。...
1. **日志导出**:用户可以使用此工具查询和导出SVN仓库的完整提交历史记录。这些日志包含每次提交的详细信息,如提交时间、作者、修改的文件列表以及提交时的注释。 2. **历史URL备份**:新添加的特性允许用户备份...
这对于追踪代码更改历史和理解项目进展至关重要。预提交钩子脚本可以检查即将提交的变更集是否包含有效的日志信息。例如,一个简单的Python预提交钩子脚本可能如下所示: ```python import sys # 检查提交日志消息...
在软件版本控制的世界里,Subversion(简称svn)是一款广泛使用的版本控制系统,它允许开发者跟踪和管理代码的修改历史,协同工作并保持代码库的一致性。对于svn的日常管理,有一款名为“svn提交日志导出工具v4.6”...
这对于团队协作和代码管理至关重要,因为它提供了关于代码修改历史的详细信息。 描述中提到的“博文链接:https://txlong-onz.iteye.com/blog/2026005”是一个指向特定博客文章的链接,遗憾的是,由于这是一个假设...
### 修改SVN日志:深入理解与实践 #### 核心知识点解析 **Subversion (SVN)** 是一款广泛使用的版本控制系统,它帮助开发者管理代码变更、协作开发以及追踪历史记录。SVN的一个关键特性是其日志系统,用于记录每一...
svn日志记录了项目历史上的每一次提交,包括提交者、提交时间、提交消息等信息。通过查询日志,开发者可以查看过去对代码所做的更改,找出特定的修改或回溯错误。 筛选svn日志通常是通过命令行工具`svn log`完成的...
在实际的项目管理中,确保开发者提供清晰、有意义的日志信息对于跟踪代码变更历史至关重要。通过配置`pre-commit`钩子,可以强制要求提交时必须包含日志信息,并且可以设定最小长度限制,防止草率的提交导致版本记录...
### SVN限制强制写日志及只能修改自己日志脚本 #### 1. SVN客户端修改日志功能(且只能修改自己日志) 在Windows环境下,为了实现SVN客户端的修改日志功能,并确保用户只能修改自己的日志记录,可以通过自定义...
本文将详细介绍两种删除SVN版本信息的方法,分别是通过修改注册表和使用批处理脚本。 ### 方法一:修改注册表 1. **备份注册表**:在开始操作前,为了防止意外,务必先备份Windows的注册表。可以通过“运行”...
默认情况下,Subversion不允许直接修改历史日志,因为这可能引起混乱。但有时,用户可能发现之前的日志描述有误或不完整,需要更正。为此,我们可以创建一个`pre-revprop-change.bat`脚本。这个脚本会在尝试修改修订...
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的...
例如,通过"查看日志"可以追溯代码的历史修改,"解决冲突"可以帮助你在代码合并时处理不同版本之间的差异。 总之,TortoiseSVN是一个强大且易用的版本控制工具,其与Subversion的兼容性问题可以通过降级客户端版本...
该插件通常会提供查看、搜索和分析项目文件的SVN日志的能力,帮助开发者了解文件的历史变更情况。 3. **开发过程**: - **接口设计**:首先,你需要设计一个用户友好的界面,让用户可以触发查看SVN日志的操作。这...
在SVN中,提交操作是记录更改的关键步骤,而日志消息是描述这些更改的重要注释。`pre-revprop-change` 和 `pre-commit` 是SVN仓库钩子(hooks)脚本,它们在特定事件发生时执行,以实现自定义的行为或验证。 标题...
3. **编辑钩子脚本**:如果需要修改日志历史,你需要访问Subversion服务器,找到`hooks`目录,并编辑或创建`pre-revprop-change`脚本。确保脚本允许你期望的操作,并正确处理错误和异常。 4. **测试和部署**:在...
通过使用SVNKit,开发者可以在Java应用程序中集成SVN的功能,例如读取日志、检查差异、提交更改等。 在描述中提到的自动化打包程序的工作流程可能包括以下几个步骤: 1. **解析SVN日志**:程序首先通过SVNKit API...
这是出于安全考虑,防止不适当的修改导致历史记录混乱。 在本案例中,提供的`pre-revprop-change.exe`文件是一个预设的钩子脚本,用于处理此类操作。通常,这个脚本应该被放置在SVN版本库的`hooks`目录下。当用户...
它允许开发者跟踪和管理代码的修改历史,以便于协同工作、回溯错误并理解代码的发展过程。本文将详细介绍如何使用SVN进行常见的操作,特别是查看代码的提交记录和改动细节。 ### 1. 安装与配置SVN 首先,你需要在...
4. **日志文件泄露**:SVN服务器的日志文件可能包含敏感信息,如用户凭据或请求的历史记录,如果不进行适当保护,这些信息可能被暴露。 5. **路径遍历攻击**:通过构造特殊的URL,攻击者可能能够遍历服务器文件系统...