问题标签 [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.
svn - svnkit:在预提交挂钩期间获取上传的文件内容
我正在用 Java 编写一个预提交钩子。预提交挂钩(批处理文件)使用参数调用我的 Java 程序:repositoryLocation
, transactionId
. 我需要在提交期间验证 XML 文件,如果其中任何一个似乎无效,我会将非零退出代码返回到我的预提交挂钩,然后回滚整个提交事务。
我可以通过以下方式访问文件的任何修订版的内容代码:
但是我无法访问正在上传的文件的内容(工作副本的内容,由用户提交)。我不想向 SVN 写任何东西,我需要读取上传文件的内容,然后进行一些验证。在我的 Java 程序完成后,SVN 将完成提交或回滚。
有人可以帮我解决这个问题吗?
git - 预提交挂钩不检查保存的更改是否在运行前暂存
我按照本指南创建 git pre-commit hooks,到目前为止,我真的很喜欢它给我带来的好处。
但是,我在使用时遇到了问题:
- 我写了一些代码,也许是一些没有通过 rubocop 检查的代码。
- 我暂存它,然后尝试提交它。预提交挂钩按预期工作。
- 我去解决 rubocop 报告的问题。
- 我保存更改,但忘记将
add
其保存到 index。
当我提交时,我的脚本只获取 中的已更改文件列表,git diff --cached --name-only --diff-filter=AM
在每个文件上运行 rubocop,如果有任何问题则退出。
这是我的脚本:
我不想sed
用来解析git diff
. 有没有更简单的方法来确保我正在检查index,而不是文件出现在磁盘上?
我的直觉告诉我,可能有一种方法可以检查是否有任何文件同时位于git diff --name-only --cached --diff-filter=M
and git diff --name-only --diff-filter=M
中,如果是这样就退出。
欢迎提出其他建议。
php - Git Pre Commit Hook for Phing PHP Build Select Files
I want to use a pre-commit hook to check my codefiles before commit them to git. For checking I will use Phing (a PHP build tool).
Here is my pre_commit_hook (MacOS):
And here is the build file:
Currently git starts the build process and ALL files of the folder 'app' will be checked (not only those I want to commit). After the process although there will found some fails (i.e. violation of coding guideline) the build process finished and the files will be committed (but they haven't to in this case).
Here are my questions:
How can I tell Phing to use only those files which I want to commit. Or: How can I transfer the information about the files to commit from git to Phing?
How can I "collect" the fails in the targets of the build process (i.e. wrong filenames or violation of a coding guideline) and control, if the build process has to fail.
If one or more target fails, how can I send a return value (1) to git, so that git stops the commit?
How can I define in an adhoc-task that it fails (I have tried it with the property ${failure}?
Thanks a lot for your support!
Stefan
pre-commit - 创建坩埚审查预提交
我想为 Precommit 审核创建一张 Crucible Review 票证。
我面临一个问题,例如我无法在尚未在 GIT 上提交的补丁中找到新创建的文件。
cvs - CVS 预提交检查
我需要对正在提交的任何 javascript 文件运行 CVS 预提交脚本。该脚本基本上运行 JS Hint 以确认任何 JavaScript 代码都处于良好状态。问题是我无法在拥有 CVS 存储库的同一台机器上安装 JS Hint。我想出的最简单的解决方案是使用预提交脚本在另一台安装了 JS Hint 的机器上 ssh JS Hint 命令。我的问题是我不确定如何将文件的新内容传送到远程机器,因为它还没有提交给 CVS。CVS 机器是否有办法从预提交脚本中访问新内容?
git - GIT 是否缓存预提交挂钩
由于缺少成员文档,gJSLint 会吐出错误。我们更新了我们的 pre-commit 钩子,任务是 linting JavaScript。编辑包括 gJSLint 规则 220(忽略缺少的成员文档)。但是,在执行提交时,GIT 仍然抱怨 JavaScript 无效。单独运行 gJSLint 不会产生错误。
gjslint --strict --disable=5,6,110,220 app/pits/modules/api.js
我们已经删除了暂存文件,然后将它们添加回暂存中,但没有成功。
GIT 是否缓存预提交挂钩?
预提交钩子
git commit -m"...." 的结果
验证 JavaScript:
JSLint 失败:app/pits/modules/api.js
JSLint 失败:app/pits/modules/State.js
JSLint 失败:app/pits/modules/table.js
JavaScript 验证完成
COMMIT FAILED:您的提交包含应该通过 JSLint 但
环境
git 版本 1.8.1.2
gjslint 版本 2.3.13
lubuntu 版本 13.04
regex - 在预提交 git 挂钩中使用正则表达式进行 grep
我正在编写一个小预提交挂钩来检查调试代码,这在使用时效果很好:
但是当我改为:
它无法捕捉到任何东西。
完整代码:
不确定它是正则表达式还是其他东西
svn - 自动将 SVN 预先提交给审查委员会,然后在批准后提交给 SVN
我的目标是使用 SVN 预提交挂钩将审查请求直接发布到审查板,而不是将其提交到存储库。作为第二步,我希望在批准差异后它应该自动转到存储库。
那有可能吗?如果是,那么一些指针将不胜感激。有很多地方解释了配置后提交,但我在谷歌上找不到任何东西。
编辑:试图详细说明问题
所以最近我们已经完成了审查委员会的设置。我们使用审查委员会 post-review hook 将其与 SVN 集成。一旦用户使用“发布评论”字符串提交,它就会进入审查委员会。
现在我想要实现的是
1. 来自 SVN 的用户提交。如果进入存储库,则更改应该以差异(自动)的形式提交给审查委员会。
2. 审稿人应该分配给默认审稿人(对于初学者,以后可能可以在提交字符串中指定)
3. 审稿人将对其进行审阅。批准后,应将差异提交到存储库(自动或手动)
git - 我的 git pre-commit 钩子没有执行 Astyle,也没有设置变量。为什么?
IM 编写了一个简单的 git pre-commit 钩子来在将要提交的文件中运行 Astyle(一个代码美化器)。这是代码:
例如,当我尝试使用 git commit -a -m "test1" 提交名为“file1.c”的文件时,我进入控制台:
因此, git diff --name-only 没有在 FICHEROS 中设置输出。如果预提交仅尝试运行 astyle,则脚本会跳过输出并且不会格式化文件...
如果我从控制台运行 .git/hooks/pre-commit 我得到:
为什么 git 不能在预提交脚本中执行 astyle 并设置变量,当我从控制台运行预提交时,它可以工作?
delphi - 重大项目对 mercurial 的初始提交
我有超过 10 年的软件项目,我想致力于 Hg。
这是与 Delphi 7 相关的代码,包括 3rd 方许可库、使用 svn 管理的开源库和我自己的代码(我正计划迁移到 Delphi XE5)。
第 3 方和 svn 派生的库通常在 Delphi IDE 中安装了组件,并且应该保持在“最新”版本(因为回滚通常会破坏 IDE),所以我只是备份它们(它们是 svn 外部从未回滚)。
我的布局如下:
也就是说,一个“通用”文件夹,其中包含我通常包含在所有项目中的代码,无论它们部署在哪里。
然后按主要产品细分,以及客户定制的子项目。
我已经阅读了各种教程,但我似乎遗漏了一些东西......
我看到了如何通过移动到 ..\CodeRoot 并运行 Hg Init 将 CodeRoot 下的所有内容添加到本地存储库。
我不清楚我是否很乐意将所有内容都放在一个存储库中。
OTOH,如果最上面的“公共”文件夹不在所有内容中,我就有问题了。
每个重大项目下的“共同点”都有同样的问题。
我还不确定我的“粒度”应该是什么——每个 MajorProject 或每个 CustProject 的存储库。
所以 - 问题:
1)如果我选择“per MajorProject” - 如何处理最顶层的“common”文件夹?
2)如果我使用“per CustProject” - 我如何处理最顶层和每个主要项目的公共文件夹(如果它们的处理方式与最顶层不同)
3)最后,如果我想创建一个远程中央存储库(而不是本地),我如何安全地将所有文件移动到远程中央存储库,然后再将其克隆到我的机器本地?
TIA。
干杯,教育发展局