问题标签 [pre-commit-hook]

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.

0 投票
1 回答
2348 浏览

svn - Subversion 工作流程:在提交前强制更新、构建、测试

是否可以创建一个 svn 提交钩子来确认工作目录在提交之前已经过 svn 更新、构建和测试?我想至少确保在开发人员提交之前,已经使用主干中的最新代码编译和测试了代码。当开发人员修改导致构建失败的不同源代码时,这将防止主干中的集成问题。

如果存在任何已更新的文件(但在工作目录中没有必要修改),另一种方法是阻止提交。

顺便说一句,正如前面问题中提到的,我的工作提交二进制文件和源代码。一个给定的原因是,如果提交时存在二进制文件冲突,您知道该二进制文件的源已更改,因此您需要运行 svn-update 并重新编译。它也使合并和更新变得痛苦。我意识到如果开发人员在提交之前进行更新,则不太可能需要此检查。

0 投票
1 回答
273 浏览

svn - 在 SVN Pre-Commit 上编译 CoffeeScripts

我正在为客户开发一个应用程序。在我完成项目后,客户也将开发应用程序,所以我需要让他们更容易这样做。我一直在使用 CoffeeScripts 编写我的 JavaScript,然后在我使用 Ant 脚本将它们推送到我的个人构建服务器时编译它们。

Ant 脚本调用coffee -c js/*.coffee将所有咖啡文件编译成同名的 JS 文件。我想在 SVN 预提交挂钩中执行相同的命令。我知道使用 SVN 挂钩更改文件是一件坏事,但我认为由于我实际上并没有更改任何文件,而是创建新文件,因此这不被归类为人们声称的大坏事。

我根本不熟悉 SVN(我通常使用 Git),我能找到的所有内容都在谈论 python 脚本和一个名为 svnlook 的工具,但实际上没有任何解释。

0 投票
2 回答
1729 浏览

svn - “svnlook propget”有效吗?

好的,请看以下内容:

我正在使用 svnlook 命令,似乎有问题。第 1 行显示trunk. 第 2 行显示有一个名为 的foo属性bar。我通过 thssvnlook proplist命令做到了这一点。好的,到目前为止一切顺利。

第 3 行显示了propgeton property的结果foo。它什么也不返回。如果我像第 4 行那样拼错了名称,它会告诉我找不到该属性。

我的理解是,svnlook propget假设打印财产的价值很像svn propget。实际上:

完全按照我的想法去做。

我是不是错过了什么。我做错什么了吗。还是命令有问题svnlook

我需要这个作为 Subversion 钩子,所以使用svn代替svnlook是不可能的。

0 投票
1 回答
3298 浏览

python - Mercurial Pre-Commit Hook:如何挂钩到当前目录中的 python 程序?

我正在尝试创建一个在提交被推送到主存储库时运行的 Mercurial 挂钩。我创建了一个 python 脚本,如下所示:

对于每个分支,这commit.py是重复的,因为它包含在代码被推送到主存储库之前需要运行的机制。只有当这些预推送机制通过时,推送才会成功。用户可以修改他们的本地 commit.py,以便他们只运行这些预推送操作的子集,具体取决于他们所从事的项目,并且每个人一次可以从事多个项目。因此,commit.py不能是可以驻留在.hg文件夹中的全局 python 脚本。

为了让 mercurial 在本地运行commit.py,在我的 mercurial.ini 文件中(在 C:\Users\UserName\mercurial.ini 中),我添加了以下语句:

如果我将它放在.hg文件夹中,python 脚本就会运行,但当我这样做时不会。谁能帮我阐明这个问题?非常感谢。

0 投票
1 回答
539 浏览

git - 如何传播我的 git 配置/挂钩?

我最近决定希望所有提交到我的存储库的人填写一个简单的提交日志。基本上我希望他们填写提交信息的表格。

快速搜索找到了我: 如何更改 git commit 消息中的默认注释?

现在,我可以使用我的表单大纲生成一个默认提交消息。

但是,我知道出于安全原因,git 不会让我将钩子推送给连接到我的存储库的其他人。

或者,我可以更改我的 commit.template 以指定一个模板,并且每当我进行提交时,我都会看到一个要填写的表单。

同样,我似乎无法更改其他人机器上的配置。

有没有办法在 git 中为每个人提供相同的默认提交消息,而无需他们自己设置?

0 投票
2 回答
611 浏览

svn - 需要用户在控制台中输入“y/n”的颠覆预提交钩子?

我有一个预提交挂钩,它检查消息是否为空并且至少需要 x 个字符。我们使用 JIRA 来跟踪问题,并在提交消息日志中“标记”我们的问题。但是,并非每个提交都与 JIRA 问题有关。

所以,我在想它可以检查消息是否包含我们的 JIRA 关键字,如果没有,则询问用户是否仍要提交,如果他们输入“y”则提交,如果输入“n”则不提交。

是否可以通过这种方式获得用户输入/键盘反馈?

注意:我使用的是 Windows 和 TortoiseSVN

0 投票
0 回答
245 浏览

git - Ack 与 git hook 脚本中的模式不匹配

我编写了一个 git pre-commit 钩子,目的是禁止包含本地文件路径的提交。通常 git 用户在提交和推送之前忘记用与服务器相关的路径替换本地路径,每次发生这种情况都会浪费很多时间。

当使用指定文件在 CLI 上调用 ack 时,我的正则表达式工作正常,但在我的钩子脚本中调用它时拒绝匹配文本。我认为也许回声是罪魁祸首,或者问题与换行符/换行符有关。

我的脚本:

这应该防止在添加了新路径的地方提交,就像这样,在 git diff 中显示,如下所示:

但应接受注释掉的路径,例如:

为什么我的脚本没有正确检测到未注释的本地路径?

0 投票
2 回答
3979 浏览

php - 为特定文件夹触发 SVN 预提交挂钩

我们客户的一个 SVN 存储库在单个存储库下有很多项目。现在我想通过预提交挂钩检查其中一个项目的编码标准。

如果我配置预提交,它将影响存储库中的所有项目(文件夹),我如何告诉钩子脚本仅在来自特定文件夹(或项目)的文件时触发(检查编码标准) ) 承诺。

更新

编码标准是 Zend 有意设计的,我将使用PHPCS(PHP 编码标准)来验证编码标准。

0 投票
2 回答
194 浏览

svn - 将审阅者姓名自动添加到 subversion 中的源文件

我不是专家subversion,非常感谢有关以下问题的任何提示。

我想将评论名称自动添加到Java文件标题中的注释部分(.java仅限扩展名)。这可以手动完成,但在大型提交的情况下,如果需要很长时间来修改数百个文件的标头。我猜这里可能会使用svn pre-commit钩子或其他功能。svn

0 投票
2 回答
8016 浏览

svn - SVN 预提交问题

我在网上找到了这个脚本,很少有人说它适用于他们的存储库。该脚本是允许预提交检查以在检查时强制检查注释。问题是我将它添加到 SVN 中的钩子目录中,现在所有提交(甚至是带有注释的提交)都失败并显示此错误消息 “提交被预提交(退出代码 255)阻止,没有输出“

现在,我无法更改脚本或删除它,因为我得到了同样的错误。有关如何还原此预提交脚本的任何建议?