问题标签 [pre-commit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Windows 上 Perl 中的 SVN 预提交挂钩
我正在编写 Perl 脚本来在Windows机器上进行 SVN 预提交检查,并且我使用 VisualSVN Server。
这是代码:
预提交.bat
预提交.pl
基本上,我希望将“svnlook log”结果重定向到 res.txt,然后我可以从这个文件中读取。
但是当我从 TortoiseSVN 提交时,perl 脚本因“无法完成 System():不适当的 IO 控制操作”而死,我不知道出了什么问题。
提前感谢您的帮助。
batch-file - svnlook cat -t 在 Windows 上不起作用(当我创建 .bat 脚本时)
我正在尝试编写一个 .bat 脚本作为 svn 中的预提交挂钩。但是,当我尝试使用带有 -t 选项的 svnlook cat 命令时,它不起作用。它一直告诉我语法错误。我尝试了所有方法,包括添加引号、更改 -t 选项等。但是,如果我删除 -t 选项,它不会报告语法错误。所以这是错误脚本:
如果我执行以下操作,它们都很好:
或者
有人请帮助我!谢谢!
别管大家,我想我只是自己想通了。我们应该使用 SET TXN=%~2 来消除引号。即使我这样做了,愚蠢的批次也会在变量 TXN 的末尾放置一个空格。这就是导致问题的原因。所以脚本应该如下所示:
svn - 检查提交消息中的特定字符串 - SVN Precommit Hook
我期待 svn 提交消息中的以下格式。
描述:(变更的一些描述)
实体:(变更请求编号)
如果提交时的注释不符合上述格式,则应抛出错误消息。这个想法是检查提交消息中的关键字符串“描述”和“实体”。我还在检查消息中是否存在评论。
我正在使用以下代码,但我无法检查字符串“描述”是否正常工作。(虽然检查空评论工作正常。)你能告诉我可能做错了什么吗?
我也尝试使用简单的 grep "Description" 以及 grep -w "Description"。还是拿不到。
svn - VisualSvn 中的空 Repos-Path/Txn-Name
我正在尝试设置一个简单的预提交钩子脚本,该脚本会在没有消息的情况下拒绝提交。我们使用 VisualSVN Server 2.5.8,并且我添加了一个指向 .bat 文件的预提交挂钩。
该文件已执行,但 REPOS-PATH 和 TXN-Name 的参数为空。在我的脚本中,我尝试将 %0 记录到文件中,我发现这只是返回脚本的路径。所以出于某种原因,VisualSVN Server 没有传递这些参数。有什么问题?
测试代码:
提交后, test.log 包含:
“回购。”
“TXN。”
git - GIT:提交时文件中有当前提交哈希和最新标签
这可能更像是一个技术问题:
我正在使用 git 进行版本控制,并使用 rsync 将 PHP CMS 的文件发送到测试或生产站点。现在我想使用一个防呆的自动化系统来跟踪当前部署的提交,我在考虑这个:
设置一个 git 钩子来添加/更新带有最新标签和提交哈希的文本文件。然后我可以轻松地查找提交。
我的问题是在预提交时脚本不知道提交哈希。是否有任何直接的方法来完成这项工作(或达到相同目的的另一种方法)?
感谢您提前输入!
git - Git 预提交脚本不返回非零
我有一个脚本,我试图运行它来检查最新提交中文件的编码。当我手动运行它时,它的行为符合预期,但是当我执行提交时,它不会。如果变量在我的函数之外,我可以很好地打印它们,所以我怀疑它与我检索修改/添加的文件的方式有关。有没有办法让 Git 处理得更好?
version-control - Bzr gui 提交工具 - 有吗?
是否有bzr的 gui 提交工具,类似于git gui?对我来说最重要的功能是能够将编辑分解为单独的提交。
windows - Windows 上的 SVN 预提交挂钩未按预期运行
我正在尝试为 Windows 编写一个预提交钩子 .bat 脚本。代码粘贴在下面。它运行文件直到我在下面写“ISSUE HERE”的那一行。我正在尝试做的是检查正在签入的文件中是否有任何内容。我的期望是,如果 findstr 能够在文件内容中找到 console.log,ERRORLEVEL 将打印值 0,如果在文件内容中找不到 console.log,则 ERRORLEVEL 将打印 1。但令我惊讶的是,它总是打印 0,不管console.log 是否在文件中找到。请帮助我了解问题出在哪里。
谢谢
git - staging 为空时强制 git commit,但 pre-commit 钩子会添加文件
有点卷曲,我无法找到答案。我有一个 git 的预提交钩子,它 mysqldumps 数据库,并暂存文件以进行提交。
我正在为一个项目运行 Drupal,因此,相当多的配置是通过接口完成并存储在数据库中的,显然,我热衷于在版本控制中捕捉时间点里程碑。
这是我正在尝试的基本缩减测试:
问题是如果没有要暂存的文件,预提交脚本会运行,但提交未完成。如果您echo $?
之后运行,git commit
则返回退出代码 1(因为最初暂存中没有文件)。运行git status
显示 db 转储现在已准备好提交。
如果我在运行提交之前将任何其他文件添加到暂存中,则提交有效。
我显然可以很容易地编写一个包装器来做我想做的事情,然后git commit
在一切都提前上演后在最后调用,但是任何人都可以阐明这种情况下的最佳实践吗?
svn - 预提交挂钩以在提交消息中强制指定模式
当我提交到 SVN 时,我想在提交消息中强制指定一个特定的模式,比如缺陷 ID。如果您有或指导我,有人可以提供 shell 脚本吗?
对此的任何帮助将不胜感激......
问候,戈帕尔