SVN 预提交挂钩

2023-12-25

我目前正在尝试扩展我们已经存在的(并且正在工作的)预提交批处理文件以提交到 SVN。第一部分阻止任何没有注释并按预期工作的提交。第二部分是尝试阻止用户提交 SUO 文件,但这目前正在阻止所有提交。

我对 DOs 脚本的理解不是很好,所以我怀疑这可能是我对 FindStr 的使用?

有人可以帮忙吗?

"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO OK
echo "Commit Comments are Required" >&2
exit 1
:OK
"C:\Program Files\VisualSVN Server\bin\svnlook.exe" diff -t %2 %1 | FindStr /R "[a-zA-Z]\.suo"
IF %ERRORLEVEL% EQU 0 exit 0
echo "SUO files cannot be committed" >&2
exit 1

如果找到某些内容,findstr 返回 0;如果没有找到任何内容,则返回 1。你刚刚倒置了你的支票。

不需要batch-foo,即使在Windows上,shell也是交互式的,所以你可以尝试一下:

>dir | findstr ".sln"
15.01.2009  16:37            33.844 Project.sln

>echo %ERRORLEVEL%
0

>dir | findstr ".slngimpf"

>echo %ERRORLEVEL%
1

顺便说一句,写起来更容易

if errorlevel 0 andthencontinuewithwhatever

这样你的脚本也能稳定地抵御不祥的事情:

set errorlevel=0

这将破坏任何未来以正确的方式打印带有 %errorlevel% 的错误级别的尝试。

(edit)重要提示:我忘了说if errorlevel语法检查错误级别是否为大于或等于到被测试的值。因此,要正确使用它,您必须始终首先检查最高错误,例如:

someCommand
if errorlevel 10 ...
if errorlevel 9 ...
if errorlevel 0 ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVN 预提交挂钩 的相关文章

  • 批处理文件递归复制目录

    有没有办法在 bat 文件中递归复制目录 有这样的例子吗 调查xcopy https learn microsoft com en us windows server administration windows commands xcop
  • 将Redmine问题与SVN修订版联系起来的最佳方法

    我们使用 Redmine 进行问题和错误跟踪 我们添加了 SVN 集成 但通过这样做 它仅显示活动中的 SVN 修订 如果能看到由错误或问题引起的所有 SVN 更改 那就太好了 但这似乎不可能 有没有办法做到这一点 如果不是Redmine
  • 提取TortoiseSVN保存的密码

    有什么方法可以提取 TortoiseSVN 保存的凭据吗 简短回答 您可以使用TortoiseSVN密码解密器 http www leapbeyond com ric TSvnPD 轻松显示您缓存的凭据 包括密码 长答案 该工具的工作原理如
  • 加载了不兼容的 JavaHl 库

    我在使用 Subclipse 和 JavaHL 库时遇到问题 Subclipse 它给出了错误 加载了不兼容的 JavaHL 库 需要 1 8 x 或更高版本 我使用的是 Ubuntu 桌面 12 04 32 位 Subclipse 1 1
  • Curl 不被识别为内部或外部命令、可运行程序或批处理文件

    我已经安装了curl并将其设置为environment variable在我的系统中 但是当运行curl命令它给出一个错误 curl is not recognized as an internal or external command
  • 从存储库检出代码时出现 SVN 错误 E175002

    在尝试从在线存储库中签出代码时 我收到以下错误 E175002 repos xxx svn vcc default 的报告 我正在尝试从远程计算机上签出代码 经过长时间的研究 我终于找到了一个解决方案 解决方案是allow from all
  • 使用脚本清除 Internet Explorer 6.0 浏览历史记录

    我使用以下脚本删除 IE 7 0 中的浏览历史记录 RunDll32 exe InetCpl cpl ClearMyTracksByProcess 255 但现在我需要一个脚本来清除 IE 6 0 中的浏览历史记录 我收到一条错误消息 缺少
  • 批处理:在带有管道的 for 循环中执行带引号的命令来查找

    您能否建议如何修复下面的命令 该命令会从 svn 中删除未版本控制的项目 rem echo off for f tokens 2 i in c Program Files TortoiseSVN bin svn exe status no
  • 如何使用Windows批处理命令删除“无扩展名的文件”的所有内容

    我想删除以 FIlE 为扩展名的文件的内容 即没有扩展名 我知道如何删除文本文件的内容 但不知道如何删除以 文件 为扩展名的文件 我会感谢你的努力 提前致谢 Use Del 在批处理文件中删除没有扩展名的文件 use Dir A D 列出所
  • git-svn SVN 作者文件的相对路径?

    我已经使用 git svn 从工作中克隆了一个 SVN 存储库 在最初的克隆过程中 我提供了一个 SVN 作者文件 当我进行初始克隆时 git 设置了authorsfile作为绝对路径 但是 我在工作机器和笔记本电脑上保留了这个 git 存
  • 您对版本控制进行到什么程度了? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 2 批字符串问题

    1 是否有任何内置函数可以告诉我变量的内容是否仅包含大写字母 2 有没有办法查看变量是否包含字符串 例如 我想查看变量 PATH 是否包含 Ruby 对于第 1 部分 findstr就是答案 您只需使用正则表达式功能即可errorlevel
  • .bat 文件将文件排序到文件夹中

    对于我的图片集 我希望文件夹中的所有图片按日期自动分类到文件夹中 幸运的是 这些文件已经以时间戳命名 2012 07 15 12 21 06 jpg 2012 07 15 12 21 26 jpg 2012 07 16 12 12 50 j
  • 持续集成颠覆

    抱歉 如果这个问题的答案已经存在 我还没有找到 我是网络开发团队的成员 我们维护一个网络门户 发布管理与 Subversion 配合使用 这就是我向门户添加新功能时的工作方式 通过复制 Trunk 创建新的 Branch 在那个分支发展 定
  • svn propget svn:忽略。什么也没返回,但 svn 显然忽略了我的文件

    我正在尝试将现有的 iPhone 项目添加到 unfuddle com 上的 subversion 帐户 除了一些被忽略的 a 文件之外 一切看起来都很顺利 我知道它们被忽略 因为除非我使用 no ignore 标志 否则我看不到它们处于
  • 如何在批处理文件中回显换行符?

    如何从批处理文件输出中插入换行符 我想做类似的事情 echo hello nworld 这会输出 hello world Use echo hello echo echo world
  • SVN 存储库大小莫名其妙地从小差异增加到大文件

    我不明白为什么大文件的微小差异会导致我的颠覆存储库增长如此之多 我有一些测试使用的数据库内容的 zip 文件 我想将每个新版本的测试数据存储在我们的 Subversion 存储库中 我做了一些实验 检查了 data zip 的最后几个版本
  • 批处理脚本 - 逐行读取

    我有一个日志文件 我需要逐行读入并将该行传送到下一个循环 首先 我在一个单独的文件中 grep 日志文件中的 主 字 如 错误 以保持其较小 现在我需要获取单独的文件并逐行读取它 每行都需要进入另一个循环 在这些循环中我 grep 日志并将
  • 用于创建计划任务的 VBScript

    我正在尝试创建一个 VBScript 它创建一个批处理文件 然后创建一个计划任务来运行该批处理文件 到目前为止 我尝试过的所有操作都创建了批处理文件 但没有创建计划任务 并且我没有收到任何错误 这是我到目前为止所拥有的 Option Exp
  • 如何在颠覆合并期间忽略文件夹

    我有一大堆更改需要合并到我的分支中 但我想在合并过程中忽略特定文件夹 是否可以使用 Subversion 来做到这一点 如果是这样那我该怎么办呢 编辑 我想忽略的文件夹位于存储库中 但在合并期间我不会对此文件夹进行更改 您可以像平常一样进行

随机推荐

  • 使用 DQL 查询返回外键

    我有一个像这样的 InvoiceItem 实体 Entity class InvoiceItem ManyToOne targetEntity Invoice inversedBy items JoinColumn name invoice
  • grails 2.3:测试应用程序无法识别测试

    我正在使用最近发布的 grails 2 3 0 不幸的是 测试应用程序无法识别测试 这是我为产生问题所做的事情 首先 创建一个新应用程序并创建一个控制器 grails create app firstApp cd firstApp grai
  • glClearColor() 将 iPhone 的渲染利用率推至 27%

    寻找答案的结果是这个问题 https stackoverflow com questions 872560 512x512 texture causing huge gpu stress on iphone despite tiling 我
  • Python:使用minidom搜索具有特定文本的节点

    我目前面临的 XML 看起来像这样
  • 存储来自 Google Places API 的数据

    如果这个问题听起来有点傻 请不要介意 我正在尝试了解有关 Google Places API 的更多信息 我有兴趣做一个类似于airbnb com的实现 检查顶部的搜索功能 它在自动建议中显示 powered by google 在我们的地
  • 2 个给定数字之间的双精度数密度

    重要编辑 最初的问题是关于获取双精度数和分数的密度 当我得到双精度数而不是分数的答案时 我正在改变主题以结束这个问题 原问题的另一半是here https stackoverflow com questions 48245279 densi
  • Win32 防止窗口“折断”

    如何为我的应用程序禁用 Windows 7 的捕捉功能 以编程方式 或者有什么方法可以检测应用程序是否已被捕捉 并专门调用API函数来取消捕捉 调用 SetWindowPos 或 ShowWindow 无法正确取消对齐 SW MAXIMIZ
  • 使用python中的struct模块打包和解包可变长度数组/字符串

    我试图掌握 Python 3 中二进制数据的打包和解包 它实际上并不难理解 除了一个问题 如果我有一个可变长度的文本字符串并且想要以最优雅的方式打包和解包它怎么办 据我从手册中可以看出 我只能直接解压固定大小的字符串 在这种情况下 是否有任
  • MS Access VBA 捕获 SQL Server 连接错误

    我在获取 Access 2010 VBA 来捕获与 SQL Server 2008 连接以链接表的错误时遇到问题 我收到错误并弹出窗口 可能是来自 ODBC 驱动程序 我想抑制这些并自己处理错误 我知道 DAO errors 和 ADO e
  • Jquery 添加值以选择选项

    我已经用谷歌搜索这个选项很多天了 但找不到解决方案 我想要的是 我有两个选择框 第一个选择框有国家 地区名称 第二个选择框为空 我想要的是 当我从第一个选择框中选择任何国家 即英国 时 应该运行 php 查询以从表中获取所有城市名称 然后使
  • 构建 APK - 错误 - app:transformClassesWithDexForDebug

    我在这里看了很多线程 但仍然没有找到有效的解决方案 当我想构建 APK 时 出现以下主要错误 错误 任务执行失败 app transformClassesWithDexForDebug com android build api trans
  • Chartjs 拆分两位数数字

    我已经多次看到这个问题 但我找不到适合我的解决方案 我将 Django 变量传递到 Chartjs 中进行绘图 所有单位数字都是正确的 但它会将两位数变成单位数 就像 11 是 1 1 23 是 2 3 我尝试了很多不同的方法 但无法弄清楚
  • 由于 StackOverflowError,无法完成 Web 应用程序 [/app] 的注释扫描

    我正在使用 STS eclipse 插件 和 maven 开发 Spring MVC 应用程序 为了创建项目 我按照 STS 向导创建了一个新的 Spring MVC 项目 之后 我向其他项目和库添加了一些依赖项 然而 当我现在尝试将项目部
  • -bash:__git_ps1:找不到命令

    我尝试安装 Ruby 2 0 我的命令行出现了问题 现在如下所示 bash git ps1 command not found 11 58 28 whatever whatever 我不知道如何摆脱 git ps1 command not
  • 在 Python 中线程读取串行端口(使用 GUI)

    我想在运行 GUI 时每当有数据要从串行端口读取时触发一个事件 这pySerial模块显然具有实验性功能 但没有特别详细的记录 我找不到任何有用的示例在 API 中 https pyserial readthedocs io en late
  • 仅为公共成员提取 xml 注释

    我使用 xml 注释来记录组件的公共成员以及内部成员和私有成员 我想将生成的文档 xml 文件与组件程序集打包 以便为最终产品启用 丰富 例如 包含方法 异常和参数描述 的 Visual Studio Intellisense 问题在于 C
  • 如何从 php 变量获取数据属性?

    我有一个可以使用 ajax 和 jQuery 从 MySql 数据库中删除记录的表单 我试图让 jQuery 仅选择传递给它的相关记录 而不仅仅是删除它目前所做的顶行记录 我想我需要得到 div class 从我的表单中并将其设为可以选择的
  • 使用多处理时 Python rpy2 和 matplotlib 发生冲突

    我正在尝试使用多重处理来计算和生成绘图 在 Linux 上 下面的代码可以正确运行 但在 Mac ML 上却不能正确运行 并出现以下错误 import multiprocessing import matplotlib pyplot as
  • 如何调试“IndexError:列表索引超出范围”?

    我收到 IndexError 列表索引超出范围 buffer append data data index 我的代码如下 data index 0 def generate batch batch size num skips skip w
  • SVN 预提交挂钩

    我目前正在尝试扩展我们已经存在的 并且正在工作的 预提交批处理文件以提交到 SVN 第一部分阻止任何没有注释并按预期工作的提交 第二部分是尝试阻止用户提交 SUO 文件 但这目前正在阻止所有提交 我对 DOs 脚本的理解不是很好 所以我怀疑