VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433561

我们的svn服务器是使用windows平台的VisualSVN Server,有时SVN提交之后,发现忘记写提交说明了,这时需要修改日志信息,然后就报错了:

VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

错误提示的意思说Repositories不接受修改日志,需要要创建一个

pre-revpro-change hook

才行,问了度娘,搞清楚了。

hook,顾名思义,就是svn在执行一个动作之前调用的用户自己定义代码(用户没有自定义的情况下就使用默认设置)。这个代码在windows下是bat脚本或exe程序,在linux下是shell或python脚本。

visualSVN Server每个Repositories下都有一个hooks文件夹,如下图,已经有一堆tmpl文件,这些文件其实就是linux 的shell脚本模板,pre-revpro-change.tmpl就是linux版的

pre-revprop-change hook

的模板,在linux下赋予执行权限就可以使用。

VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

但是VisualSVN server运行在Windows平台,所以这些hook脚本是不可能能执行的。但只要照着这些hook模板代码的逻辑用bat脚本重写这些脚本,就可以实现windows下的hook.

pre-revprop-change.tmpl模板的代码是这样的:

代码语言:javascript代码运行次数:0运行复制

REPOS="$1"REV="$2"USER="$3"PROPNAME="$4"ACTION="$5"if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fiecho "Changing revision properties other than svn:log is prohibited" >&2exit 1

重写太麻烦了,在网找到了对应的bat脚本pre-revprop-change.bat,将这个脚本放到hooks文件夹下,就可以了。

代码语言:javascript代码运行次数:0运行复制

setlocalset REPOS=%1set REV=%2set USER=%3set PROPNAME=%4set ACTION=%5if not "%ACTION%"=="M" goto refuseif not "%PROPNAME%"=="svn:log" goto refusegoto OK:refuseecho Cann't set %PROPNAME%/%ACTION%, only svn:log is allowed 1>&2endlocalexit 1:OKendlocalexit 0

关于设置hook脚本,如果你觉得复制脚本到hooks文件夹挺麻烦,在VisualSVN server上还有更简单的办法,打开VisualSVN Server控制台界面,如下图点开一个Repositories的PropertiesHooks界面

灵云AI开放平台 灵云AI开放平台

灵云AI开放平台

灵云AI开放平台 150 查看详情 灵云AI开放平台

VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

选中下图红框的Pre-revision property change hook,点击Edit编辑

VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

将前面的脚本如下图复制进来点OK就可以了。

VisualSVN:允许修改svn提交日志(pre-revpro-change hook)

参考:

《SVN设置pre-commit和pre-revprop-change钩子》

http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/

http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/

以上就是VisualSVN:允许修改svn提交日志(pre-revpro-change hook)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/750845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月25日 20:11:56
下一篇 2025年11月25日 20:12:17

相关推荐

  • print在python中什么意思 python输出函数功能详解

    print函数的核心作用是将对象转换为字符串并输出到控制台。1) 可以输出多个对象并用逗号分隔。2) 使用sep参数可以自定义分隔符。3) end参数可以控制输出结束符。4) 支持各种数据类型并可使用格式化字符串。5) 滥用print进行调试可能导致性能问题,建议使用日志库。6) 处理大量输出时,p…

    2025年12月14日
    000
  • Python中如何避免死锁?

    在python中,可以通过以下方法避免死锁:1. 使用锁的超时机制,防止线程长时间等待;2. 设计让线程在无法获取资源时主动释放已持有的资源;3. 通过资源有序访问,按照编号顺序获取资源,避免循环等待。这些方法需根据具体场景权衡使用,以有效应对死锁问题。 在Python中,避免死锁是一个关键的并发编…

    2025年12月14日
    000
  • Python的hashlib模块在加密中怎么使用?

    hashlib模块用于加密的方式包括:1. 使用md5算法对文本进行加密;2. 使用sha-256算法进行更安全的加密;3. 处理大文件时,通过多次调用update方法;4. 拼接多个数据进行加密以确保完整性。 在Python编程的世界里,hashlib模块就像是一把神奇的钥匙,帮助我们轻松处理各种…

    2025年12月14日
    000
  • 如何管理和维护一个大型的Python项目?

    有效管理和维护大型python项目需要:1)设计清晰的项目结构,2)使用git进行版本控制,3)实施静态代码分析和持续集成,4)采用测试驱动开发,5)编写详细文档,6)使用协作工具,7)定期重构代码以应对挑战。 管理和维护一个大型的Python项目是一项复杂而关键的任务,尤其是在项目规模不断扩大、团…

    2025年12月14日
    000
  • Python中的元类是什么,有什么作用?

    元类是python中的“类的类”,用于定义类的创建规则。其作用包括:1. 动态创建类,2. 修改和扩展类,3. 验证和约束类。元类通过type实现,需谨慎使用以避免增加代码复杂性和性能问题。 Python中的元类是什么,有什么作用? 元类在Python中是一种高级特性,它允许你定义类的创建规则。简单…

    2025年12月14日
    000
  • pycharm怎么设置中文 中文界面设置详细步骤

    要将pycharm的界面设置成中文,请按照以下步骤操作:1. 打开pycharm,进入设置界面(file -> settings或快捷键ctrl+shift+alt+s/cmd+,)。2. 在设置窗口中,选择“appearance & behavior” -> “appearan…

    2025年12月14日
    000
  • python写完了怎么保存 程序保存操作说明

    在 python 中保存程序可以通过文本编辑器或 ide 直接保存文件。1. 使用文本编辑器如 notepad++ 或 vscode,点击“文件”菜单选择“保存”或“另存为”,文件名应为 .py 格式。2. 在 vscode 中按 ctrl + s 快速保存。3. 选择合适的目录保存文件,建议大型项…

    2025年12月14日
    000
  • python中random是什么意思 python随机模块说明

    random是python标准库中的一个模块,用于生成随机数和进行随机选择。1. random.random()生成0到1之间的浮点数。2. random.randint(a, b)生成a到b之间的整数。3. random.choice(seq)从序列中随机选择元素。4. random.sample…

    2025年12月14日
    000
  • python中try的用法 python异常处理try语句块使用指南

    我们需要使用try语句来捕获和处理程序执行过程中可能出现的异常,确保程序能够优雅地处理错误,而不是直接崩溃。try语句的基本结构包括try、except、else和finally块,分别用于尝试执行代码、处理特定类型的异常、在没有异常时执行代码以及无论是否有异常都执行的代码。使用try语句可以编写更…

    2025年12月14日
    000
  • Python中如何使用__subclasscheck__自定义issubclass行为?

    在python中,__subclasscheck__方法允许我们自定义issubclass函数的行为。通过重写这个方法,我们可以灵活地定义类之间的关系,例如使dog被视为animal的子类,尽管它们没有传统的继承关系。然而,使用时需注意:1. 性能影响:频繁调用可能导致性能瓶颈。2. 代码可读性:需…

    2025年12月14日
    000
  • 有哪些优质的Python学习网站和博客?

    优质的python学习网站和博客包括:1. real python,提供详尽教程和高级主题文章;2. python.org,官方文档和pep资源丰富;3. freecodecamp,系统化课程从基础到项目实战;4. towards data science,专注数据处理和机器学习;5. pybite…

    2025年12月14日
    000
  • python中%s是什么意思 python字符串格式化符号

    %s是python旧式字符串格式化符号,用于将值转换为字符串并插入字符串中。1)%s用于格式化字符串,%d用于整数。2)虽然%s仍被支持,但推荐使用str.format()或f-strings,因其更灵活和高效。 在Python中,%s是一个字符串格式化符号,用于将一个值转换为字符串并插入到一个字符…

    2025年12月14日
    000
  • 怎样在Python中实现矩阵运算?

    在python中实现矩阵运算可以使用numpy库。1)numpy支持矩阵加法,如matrix_a + matrix_b。2)矩阵乘法使用np.dot(matrix_a, matrix_b)。3)注意性能和内存管理,使用gpu加速和分批处理可优化大规模矩阵运算。 在Python中实现矩阵运算的方法多种…

    2025年12月14日
    000
  • Python中如何实现文件上传?

    在python中使用flask实现文件上传的步骤包括:1) 设置文件存储路径,2) 进行安全性验证,3) 提升用户体验。通过flask框架,我们可以创建一个简单的应用来处理文件上传,并通过代码示例详细展示了如何实现这些步骤。 在Python中实现文件上传其实是一件非常有趣且实用的任务。你可能已经听说…

    2025年12月14日
    000
  • Python中如何加密字符串?

    在python中,可以使用aes和rsa进行字符串加密。1)使用pycryptodome库的aes-128进行加密时,需生成随机密钥,使用ecb模式,并进行填充。2)rsa加密适合小数据块,使用2048位密钥,需管理公私钥。 在Python中加密字符串是数据安全领域的一个重要话题。我个人在处理敏感数…

    2025年12月14日
    000
  • Python中如何解压zip文件?

    在python中解压zip文件使用zipfile模块。步骤如下:1. 导入zipfile和os模块。2. 使用zipfile类打开zip文件,并用extractall方法解压到指定目录。3. 添加异常处理,如filenotfounderror、badzipfile、permissionerror。4…

    2025年12月14日
    000
  • python中random函数用法 python随机数生成random模块详解

    random模块是python中用于生成随机数和进行随机选择的工具。1. 使用random.random()生成0到1之间的随机浮点数。2. 使用random.randint(a, b)生成a到b之间的随机整数。3. 使用random.choice(seq)从序列中随机选择一个元素。4. 使用ran…

    2025年12月14日
    000
  • 怎么在pycharm添加解释器 添加解释器详细步骤

    在 pycharm 中添加解释器可以通过以下步骤完成:1. 打开 pycharm,进入项目页面,点击右上角的 “add interpreter” 按钮。2. 选择 “create virtual environment”,指定虚拟环境位置和基础解释器(…

    2025年12月14日
    000
  • Python中如何存储爬虫结果?

    python中存储爬虫结果的方法包括文件、数据库和云存储。1. 文件存储:适合小数据量,使用csv、json或纯文本文件。2. 数据库存储:适用于大数据量和复杂查询,支持sqlite、mysql、postgresql等。3. 云存储:如amazon s3或google cloud storage,适…

    2025年12月14日
    000
  • Python中如何复制列表?

    在python中,复制列表的方法有三种:1. 切片操作(浅拷贝),如copied_list = original_list[:],适用于简单列表;2. 深拷贝,使用copy.deepcopy(original_list),适用于包含可变对象的复杂嵌套结构;3. 使用list()函数(浅拷贝),如co…

    2025年12月14日
    000

发表回复

登录后才能评论
关注微信