原文:http://ayria.livejournal.com/33438.html
If you ever need to allow edits to commit logs, all you need to do is create a pre-revprop-change hook.
Just save this as "pre-revprop-change.bat" and throw it in the \hooks directory(仓库里会有一个\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
版本库钩子:pre-revprop-change 修订版本属性修改的通知
描述:
pre-revprop-change钩子在修订版本属性修改之前,正常提交范围之外被执行,不象其他钩子,这个钩子默认是拒绝所有的属性修改,钩子必须实际存在并且返回一个零值,这样属性修改才能实现。
如果pre-revprop-change钩子没有实现或返回一个非零值,对属性的修改就不会成功,所以的标准错误输出会返回到客户端。
输入参数:
传递给你钩子程序的命令行参数,按照顺序是:
- 版本库路径
- 要修改属性的修订版本
- 企图修改属性的认证用户名
- 属性名称已修改
- 变更描述:A (添加的),D (删除的)或M (修改的)
此外,Subversion通过标准输入将属性值传递给钩子程序。
分享到:
相关推荐
例如,通过"查看日志"可以追溯代码的历史修改,"解决冲突"可以帮助你在代码合并时处理不同版本之间的差异。 总之,TortoiseSVN是一个强大且易用的版本控制工具,其与Subversion的兼容性问题可以通过降级客户端版本...
1. 打开TortoiseSVN的设置窗口:右键点击桌面或资源管理器中的空白区域,选择“TortoiseSVN” -> “设置”。 2. 在设置窗口中,找到“语言”(Language)选项。 3. 在下拉菜单中选择“简体中文”(Chinese ...
8. 修订日志:TortoiseSVN的修订日志功能显示了文件或目录的历史变更,包括每个版本的作者、日期和注释,便于追溯和理解项目发展过程。 9. 文件锁定:为了防止团队成员同时修改同一文件,TortoiseSVN提供了文件锁定...
在开始使用TortoiseSVN之前,用户需要了解基本概念,例如版本库的创建、导入项目、检出工作副本、进行修改、添加更多文件、查看项目历史和撤销更改。这些操作对于初学者快速上手使用TortoiseSVN至关重要。 手册还...
通过右键点击文件夹或文件,在弹出菜单中选择“TortoiseSVN” -> “设置”,然后在“语言”(Language)选项下拉菜单中选择“中文”(Chinese),确认更改后,界面即会切换至中文显示。 3. **无需重启**:描述中...
- **分支和合并**:支持创建分支,允许团队独立开发,然后将更改合并到主分支。 - **冲突解决**:当多人同时编辑同一文件时,TortoiseSVN会识别并帮助解决冲突。 - **差异比较**:可以直观地比较文件或目录的差异,...
14. **日志(Log)**:通过日志,用户可以查看文件或目录的历史更改记录,包括提交人、提交时间、提交消息等信息。 15. **恢复(Rollback)**:如果提交了错误的更改,可以通过恢复操作撤销最近的提交,将工作副本回滚...
TortoiseSVN还为高级用户提供了更为深入的项目设置,例如可以编辑Subversion属性以及TortoiseSVN项目属性。在配置外部条目时,用户能够管理外部文件夹和文件。 了解TortoiseSVN版本控制的基本概念、特性以及具体的...
- **最大化窗口**:可以通过设置最大化 TortoiseSVN 的对话框。 **4.2 导入数据到版本库** - **导入**:将本地文件导入到版本库中。 - **导入适当的位置**:确保导入的文件放置在正确的位置。 - **专用文件**:...
提交前需要先进行更改,包括修改、添加或删除文件。提交步骤如下: 1. **右键选择“Commit”**:在要提交的文件或文件夹上右键选择此选项。 2. **选择更改**:勾选需要提交的更改项。 3. **填写日志消息**:输入...
2. **图形化的日志查看器**:显示文件和目录的历史版本,可以浏览每个版本的作者、日期和注释,甚至比较不同版本之间的差异。 3. **差异比较**:提供文本和二进制文件的差异对比,帮助开发者了解改动细节。 4. **...
随后,通过一系列操作演示,如创建版本库、导入项目、检出工作副本、修改文件、查看历史、撤销更改等,让用户掌握日常使用技巧。 进一步,手册涵盖了更深入的主题,如基本版本控制概念,讲解了版本库的结构、版本间...
TortoiseSVN不仅仅是一个普通的文件管理工具,它是一个完整的版本控制系统,能够跟踪文件和目录的更改,使用户可以恢复旧版本,比较差异,以及协调多个用户对同一份代码库的修改。 在压缩包的文件名称列表中,我们...
TortoiseSVN的核心功能在于帮助用户管理和跟踪文件和目录的更改,便于团队协作和项目管理。 首先,TortoiseSVN的主要特性包括: 1. **版本控制**:它允许用户将项目文件存储在中央仓库中,每次修改都会创建一个新...
4. 审查与日志:TortoiseSVN提供详尽的版本日志,可以查看历史版本的修改记录,便于审查代码变更和追踪问题。 5. 分支与标签:为了实现不同功能的并行开发或者创建稳定版本,TortoiseSVN支持创建分支和标签,灵活...
TortoiseSVN允许你比较不同版本之间的差异,也可以将更改合并到当前工作副本,帮助解决合并冲突。 - **分支与合并(Branching and Merging)** 分支允许开发人员在不影响主线开发的情况下进行实验性更改。完成后,...
5. **操作可视化**:在Windows资源管理器中,TortoiseSVN提供了丰富的右键菜单选项,如“提交”、“更新”、“查看日志”等,使版本控制操作变得简单直观。 6. **与IDE集成**:对于IntelliJ IDEA这样的IDE,...