首页 > 其他分享 >Svnlook使用浅谈(配置svn上传必须添加备注和删除权限)

Svnlook使用浅谈(配置svn上传必须添加备注和删除权限)

时间:2024-09-30 11:49:54浏览次数:1  
标签:svn Svnlook 浅谈 删除 svnlook REPOS 版本 PATH

    在配置svn上传必须添加备注和删除权限前,我先隆重介绍下今天用到的svn命令svnlook。svnlook是检验Subversion版本库不同方面的命令行工具,不会对版本库有任何修改,只是查看,包括作者信息、文件内容、更改历史、文件大小、属性等。当然它有自己的独特语法

(1)语法格式:svnlook REPOS_PATH [ARGS & OPTIONS ...],其中,`REPOS_PATH` 是指向Subversion版本库的路径。

(2)查看svnlook版本:svnlook --version

(3)svnlook全局参数:如:–no-diff-deleted:不要输出删除文件造成的差异

我们大多数情况下是用到svnlook的子命令,配置svn上传必须添加备注和删除权限时,我们用到的子命令主要是:svnlook log、svnlook author、svnlook changed(具体说明见附录),话不多说,上操作步骤:

一、配置svn上传必须添加备注和删除权限

1、打开SVN版本库服务器的SVN服务器端

2、右键点击项目,选择所有任务,选择Manage hooks

 3、点击Hooks选项卡,选中Pre-commit hook

 

4、点击下方的edit按钮

5、在弹出框中输入“svn上传必须添加备注和删除权限”代码:

@echo off
setlocal
set Repos=%1
set TXN=%2
rem 设置允许对版本库中的文件做删除操作的人员账号,中间用空格隔开
set SCM=lixing

rem 保证输入10个字符,用来限制日志的字数,可按实际需求增加“点”数,若错误则执行:err_bak
svnlook log %REPOS% -t %TXN% | findstr ".........." > nul if %errorlevel% gtr 0 goto :err_bak rem 过滤空格字符,可根据实际添加“空格数” svnlook log %REPOS% -t %TXN% | findstr /ic:" " > nul if %errorlevel% gtr 0 goto :allow rem 备注信息验证通过后,验证人员对文件的操作权限 :allow svnlook author -t "%TXN%" "%Repos%" | findstr "%SCM%" IF %ERRORLEVEL% gtr 0 goto :check exit 0 rem 删除文件验证 :check svnlook changed -t "%TXN%" "%Repos%" | findstr "^D" if %ERRORLEVEL% == 0 goto :err pause exit 0 #不能删除文件提示 :err echo 您无法删除文件,请获取删除权限 1>&2 pause exit 1 #备注未添加的提示信息 :err_bak echo 请填写本次文件提交任何变更的日志信息,最少5个汉字。1>&2 echo *******************禁止无意义字符或空格数据***************** 1>&2 goto :exit 1

6、点击窗口下方的ok按钮,再点击父窗口的确定按钮即完成了设置。

注意:我这里已经将svn的安装地址设置到电脑的环境变量中,所以没有指定svn安装路径

二、svn上传必须添加备注和删除权限

很简单,删除Pre-commit hook中添加的代码信息,确定即可。

 

温馨小提示:我用的是UI操作界面设置,当然也可以通过编写脚本直接完成,若通过脚本,只需将“svn上传必须添加备注和删除权限”的代码复制粘贴到txt中,并重新命名txt文件为:pre-commit.cmd,然后将文件放到项目仓库的hook路径下,例如:“D:\Repositories\test\hooks”(“D:\Repositories\test\”为我的test项目路径)。

 

 

附录:svnlook子命令介绍

1. svnlook author: 输出指定修订版本或事务的作者。

如,`svnlook author REPOS_PATH`,可以添加 `-r` 或 `-t` 参数指定版本或事务。

2.svnlook cat: 输出版本库中指定文件的内容。

如 `svnlook cat REPOS_PATH FILE_PATH`,同样支持 `-r` 和 `-t` 参数。

 3. svnlook changed: 列出修订版本或事务中的改动路径。`svnlook changed REPOS_PATH`,可以加上 `-r`, `-t` 参数,以及 `--copy-info` 显示复制操作详情。

 4. svnlook date: 输出修订版本或事务的时间戳。

如, `svnlook date REPOS_PATH`,同样接受 `-r` 和 `-t` 参数。

 5. svnlook diff: 显示文件和属性的差异,以GNU样式输出。`svnlook diff REPOS_PATH`,可添加 `-r` 或 `-t` 参数。

 6. svnlook dirs-changed: 列出修改(属性或子文件)的目录。

 7. svnlook filesize: 输出文件大小。`svnlook filesize REPOS_PATH PATH_IN_REPOS`。

 8. svnlook help: 提供子命令的帮助信息。

 9. svnlook history: 输出路径的历史记录,默认为根目录。

 10. svnlook info: 输出修订版本或事务的作者、时间戳、日志信息大小和日志信息。

 11. svnlook lock: 查看文件或目录的锁定信息。

 12. svnlook log: 打印日志信息。

 13. svnlook propget: 获取指定路径的属性值。

 14. svnlook proplist: 列出指定路径的属性列表。

 15. svnlook tree: 输出版本库的目录结构。

 16. svnlook uuid: 显示版本库的UUID,这是版本库的全局唯一标识符。

 17. svnlook youngest: 输出版本库的最新修订版本号。

标签:svn,Svnlook,浅谈,删除,svnlook,REPOS,版本,PATH
From: https://www.cnblogs.com/pinpin/p/18441588

相关文章

  • 浅谈笛卡尔树
    [介绍(百度百科)](笛卡尔树_百度百科(baidu.com))笛卡尔树是一种特定的二叉树数据结构,可由数列构造,在范围最值查询、范围\(top_k\)查询(rangetopkqueries)等问题上有广泛应用。它具有堆的有序性,中序遍历可以输出原数列。笛卡尔树结构由Vuillmin(1980)在解决范围搜索的几何数据结......
  • 浅谈数据代理
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title><......
  • SVN提交记录集成到Redmine历史记录
    前言:之前我们通过SvnHooks的post-commit实现了提交日志发送到企业微信机器人中。那么这篇博客来说一下,如何通过post-commit集成到Redmine,把提交记录贴在redmine单子的历史记录中,可以清楚的知道程序提交了什么如何获取提交记录发送到企业微信机器人可以先看看:https://www.cnblog......
  • SVN服务器的优势是什么?
    服务器是一种集中式版本控制系统,它管理着随时间改变的数据,并将这些数据存储在一个中央资料档案库(Repository)中。这个档案库类似于一个普通的文件服务器,但它会记住每一次文件的变动,允许用户将档案恢复到旧版本或浏览文件的变动历史。SVN服务器的工作原理可以概括为以下几个步骤:1......
  • IDEA集成使用SVN
          IDEA集成使用SVN一、   说明:本篇文章主要介绍IDEA集成SVN工具的使用,可以通过版本管理查看代码提交人、提交日期、提交信息查看修改了那些代码,为我们日常开发工作及问题定位提供便利条件。IDEA版本:2023.3.2SVN版本:TortoiseSVN-1.8.11.26392-x64-svn-1.8.13二......
  • Manacher 算法浅谈
    \(Zero.\)\(~~\)前言杂谈认识我的人都喜欢叫我马拉车,如今,马拉车来浅谈Manacher了(不就是某天打板子的时候打错了吗,不就是啪啪打脸了吗)。首先大家需要知道,Manacher不是很常考,但是也是一项必备的算法。当遇到回文串之类的问题时,别人辛辛苦苦打一堆哈希,你用Manacher算法两个并......
  • SVN客户端服务器操作流程
    一,SVN服务器的创建库1,开始菜单--搜索visualSvn,点击VisualSvnServerManager2,打开后如下图所示3,右键--creatnewrespositories,默认选项,点击4,填写库名称5,根据需要选择,点击next6,访问权限,1)如果想要共享的默认选择2)如果想要设置权限选择Customizepermissio......
  • 轻松编排工作流,浅谈DolphinScheduler如何使用Python调用API接口?
    最近,在做某大型零售企业项目时,有客户用到DolphinScheduler,并咨询是否可以用Python脚本编排工作流?该如何实现?相信有很多人会有这样的疑问,那么,本文将为我们简单分享DolphinScheduler的优势和实际使用。为什么企业数据开发要使用海豚调度?当企业在做数据开发时,任务调度平台会扮演自......
  • 轻松编排工作流,浅谈DolphinScheduler如何使用Python调用API接口?
    最近,在做某大型零售企业项目时,有客户用到DolphinScheduler,并咨询是否可以用Python脚本编排工作流?该如何实现?相信有很多人会有这样的疑问,那么,本文将为我们简单分享DolphinScheduler的优势和实际使用。为什么企业数据开发要使用海豚调度?当企业在做数据开发时,任务调度平台会扮演自动......
  • 浅谈分时电价下含电动汽车的微电网群双层多目标优化调度
    摘要:为解决大规模电动汽车无序充电导致电网出现“峰上加峰”现象,依据电动汽车充电地点的不同将配电网划分为居民区、办公区、商业区微电网,提出基于峰谷差、分时电价、用户充电满意度多目标下的电动汽车充电模式,建立了微电网内运营商峰谷差—用户充电费用少和充电满意度的双盈多目标......