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 预提交挂钩 的相关文章

  • 如何使用 Windows forfiles 命令的完整路径运行命令?

    我正在尝试运行以下命令 forfiles p Schemas m xsd c cmd c C Program Files x86 Microsoft SDKs Windows v10 0A bin NETFX 4 6 1 Tools xsd
  • 无法将 Visual Studio 项目中的多个文件提交到 subversion

    几周以来 我在使用 Subversion 时遇到了一些问题 当我尝试从 Visual Studio 2017 项目提交文件时 有些文件无法提交到我的 Visual SVN 服务器 准确地说 项目文件夹中的所有文件 如 cs config c
  • 如何使用 Windows 命令行环境查找和替换文件中的文本?

    我正在使用 Windows 命令行环境编写批处理文件脚本 并希望用另一个文件 例如 BAR 更改文件中某些文本 例如 FOO 的每次出现 最简单的方法是什么 有内置函数吗 这里的很多答案都帮助我指明了正确的方向 但是没有一个适合我 所以我发
  • Python Subversion 包装器库

    在颠覆的文档 http svnbook red bean com en 1 7 svn developer usingapi html svn developer usingapi otherlangs有一个从 Python 使用 Subv
  • 批处理 - 默认浏览器?

    有没有办法使用批处理文件查找我的计算机上的默认浏览器 只需使用 启动 www google com See here http social msdn microsoft com Forums is iewebdevelopment thr
  • 清理 Subversion 存储库的最佳方法是什么?

    我有一个不断增长的存储库 其中包含十几个我使用 TortoiseSVN 维护的项目 因为我对此完全陌生 还不知道其来龙去脉 我保存存储库的空间有限 因此我想备份它 然后删除一些旧版本 例如 如果一个项目的版本为 50 我只想保留 50 49
  • 如何“修复”SVN 分支/树冲突?

    我接手了一个软件项目 决定把所有东西都放在SVN下 上Assembla http www assembla com 使用 Tortoise SVN 树干在ROOT下 所以主干包含了整个应用程序 我标记为 1 0 对于我的第一个重要功能 我创
  • 仅当存在较新的文件时才删除文件的 Bat 文件

    我们的备份系统每天都会创建 bak 文件 如果遇到问题 我们可以使用该文件来恢复文件 如果不管这些 它们会填满我们的存储空间 所以我找到了一个批处理文件 我可以在创建新批处理文件后每天运行该文件来删除旧的批处理文件 forfiles p c
  • 如何消除批处理文件动画中的闪烁? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 因此 我一直在批量制作一个假 GUI 以作为我正在做的 YouTube 评论的结尾 它基本上是一堆方框
  • 是否存在比 SVN 更快的集中版本控制?

    我已经使用 SVN 很长时间了 现在我们正在尝试使用 Git 我在这里谈论的不是中心化 去中心化的争论 我唯一关心的是速度 后一个工具要快得多 但有时 我需要使用一种集中式方法 这种方法比分散式方法更简单 更简单 学习曲线非常快 这节省了大
  • 无法提交到 svn - 访问被拒绝

    我正在使用 SVN 开发一个小项目 我查看了该项目 svn co http mylocalserver projectx 我进行了更改 更新并添加了文件 svn add file1 php file2 php 但是 每次我想使用此命令提交更
  • 从本地缓存恢复SVN密码

    有没有办法从本地缓存恢复密码 密码必须存储在某处 因为我可以运行 svn co http my svn server foo 但我自己丢失了密码 我是否必须重置它 或者是否可以 以及如何 找到并解密密码 我主要在 Windows 上使用 C
  • 颠覆和混合修订:破坏构建的秘诀?

    在使用 TFS 一段时间后 我刚刚回到 subversion 一般来说我已经很退出了 有一件事情我记得不一样 我不记得能够从过时的工作副本中提交 或者也许我的记忆力让我无法理解 过时 的定义 我认为 过时 意味着自从我上次更新工作副本以来
  • SVN 行结束样式

    当我尝试在 SVN 中提交文件时 它显示错误为 提交失败 详细信息如下 提交 svn 行结束样式不一致 检查目录 文件上的 svn 属性 如果您定义了 svn eol style 但您的文件包含不同的样式 Unix 与 DOS 则提交将失败
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • 如何成功地用 XML 中的批处理替换文本

    我尝试使用批处理在 XML 页面中替换字符串 但无法成功完全替换它 我有这个批处理代码 echo off setlocal EnableDelayedExpansion set search logLevel 3 set replace l
  • Windows 2000 说超时不是命令或批处理文件

    我只是在摆弄 CMD 并制作动画 ASCII 艺术 我一直在尝试在 Windows 2000 笔记本电脑上使用 超时 命令 但是每次我尝试这样做时 它只是说它不是内部或外部命令或批处理文件 这是一台运行 Windows 2000 的旧东芝
  • 使用 Windows 批处理文件在文本文件中添加新行

    我有一个文本文件 其中有 200 多行 我只想在第 4 行之前添加一个新行 我使用的是 Windows XP 输入前的示例文本文件 header 1 header 2 header 3 details 1 details 2 输出后 hea
  • 批处理脚本 FOR 循环仅设置输出的第一个字母 wsl --list -q

    我正在编写一个批处理脚本 将文件从 Windows 目录复制到 WSL 发行版 其中一部分是选择将文件复制到哪个发行版 如果我使用命令wsl list q如果给我以下输出 Ubuntu 22 04 Ubuntu 18 04 我正在尝试使用此
  • 带有 LDAP 身份验证的 SVN 不起作用

    我首先从我的设置开始 为此我们有 2 台服务器 Server1 将用于所有源代码 文件等 在 Server2 上 我们拥有所有用户信息和登录信息 两台服务器都运行在 Centos 6 4 上 现在我们要在 server1 上设置一个 SVN

随机推荐

  • 使用 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 脚本的理解不是很好 所以我怀疑