问题标签 [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.

0 投票
1 回答
2457 浏览

svn - SVN 挂钩“无法合并资源”和拒绝访问错误

我有一个编写为 .NET 控制台应用程序并在 VisualSVN 服务器上运行的 SVN 挂钩,这会导致一些问题。每次我尝试提交(使用 Tortoise 远程或通过命令行本地)时,我都会得到响应“访问被拒绝”。查看 VisualSVN 的事件查看器,出现以“Could not MERGE resource...”开头的错误,然后是另一个重复“拒绝访问”的错误。

如果禁用了 pre-commit 钩子,则提交可以正常进行,因此我认为这与存储库权限无关。预提交挂钩的路径绝对正确,因此 SVN 正在寻找正确的位置。我还尝试为我的帐户授予本地管理员权限,并在带有钩子应用程序的文件夹上明确授予它“读取和执行”权限。我可以直接运行 PreCommit.exe 控制台应用程序,因此它肯定能够在机器上执行。

这是我在 repo 的 hooks 文件夹中的 pre-commit.cmd 文件:

所有这些在我的本地机器上都运行良好,所以我相信一切在语法上都是正确的,而且这只是一个权限错误。有任何想法吗?

0 投票
12 回答
106924 浏览

svn - SVN Error: Commit blocked by pre-commit hook (exit code 1) with output: Error: n/a (6)

Some weird error cropped up suddenly outta nowhere and is preventing me from checking in my code via TortoiseSVN. I'm using a free account on myversioncontrol.com

This is on a Windows Vista system. It was working fine till earlier in the day. Any clue how to get things back to normal?

The Tortoise window shows this

0 投票
2 回答
3711 浏览

git - 具有集中式工作流程的 Git 版本编号

我们将 Git 与中央服务器一起使用,我们的代码需要在文件中包含版本号。目前这样做的方式是这样的:

  1. 一个新的开发者做了一个“git clone”
  2. 在他的本地副本中,他编辑 .git/hooks/pre-commit 以调用 version.sh

version.sh(包含在项目根目录中)从“git describe”获取版本号并将其存储在文件中。

虽然这可行,但我想确保即使开发人员忘记编辑他的预提交钩子,版本号也会更新。

由于服务器没有工作副本,简单地调用 (pre|post)-receive 那里的钩子是行不通的,所以我想知道是否有办法做到这一点。

0 投票
1 回答
2040 浏览

python - 使用 Precommit Hook 运行 Django 测试

我想使用 mercurial 的 precommit 钩子运行我所有的 django 测试。每当测试失败时,提交将被中止。

目标是尽可能频繁地阻止破坏构建的提交。

编辑:最终使用外部脚本路由。这是我的 hgrc 的相关部分:

这是我在钩子函数上的进展:

我在这里做错了什么?

PS - 它给出了一个巨大的错误回溯,它包含在下面的全部内容中

这是重要的部分:

其余的:

0 投票
2 回答
245 浏览

svn - SVN 用于始终“更改”而没有更改的文件的最佳实践

我们有一个引用公共目录中文件的项目。每当打开或编译该项目时,都会复制这些文件。因为时间戳发生了变化,Subversion 将其视为变化。我只想提交通用目录的新更改,或项目中的实际更改。不是编译器为我执行的自动复制。

如何在 SVN 中保留目录和文件,但防止这些非更改被视为更改?是否有一些“最佳实践”或“首选”方式来处理这种情况?

0 投票
5 回答
54648 浏览

git - Git 预提交挂钩:更改/添加的文件

我正在写一个预提交钩子。我想php -l针对所有扩展名为 .php 的文件运行。但是我被卡住了。

我需要获取暂存的新/更改文件的列表。应排除已删除的文件。

我曾尝试使用git diffand git ls-files,但我认为我需要帮助。

0 投票
1 回答
100 浏览

svn - 如何在相同的 svn 版本中提交“提交日志”本身?

这听起来可能没有必要,但让我先解释一下我的问题。大概到那时才有意义。

很少有艺术家会根据客户的更改请求不断更新图像。艺术家相应地进行更改并使用适当的“提交消息”进行提交。就在实际提交之前,我想创建一个具有图像属性(如大小)和所有“提交消息”的文本文件。然后这个文件会自己提交。所以基本上需要某种预提交处理。尽管大多数艺术家对 svn 不太满意,但他们总能通过简单的文本文件看到上次对图像进行了哪些更改。所以艺术家只用 svn 更新和提交。

如何做到这一点?

有没有更好的选择?

0 投票
3 回答
1995 浏览

git - 这个预提交钩子如何修复尾随空格?

这个预提交钩子发生了什么?我认为更改文件会导致它们被重新暂存。

我认为这个想法是删除此提交涉及的所有文件中的尾随空格。

0 投票
10 回答
38919 浏览

git - Git 钩子可以自动将文件添加到提交中吗?

我想根据在该提交中修改的文件,使用 Git 中的提交前或提交后挂钩将自动生成的文件添加到同一个提交中。我该怎么办?

我已经尝试将此作为预提交挂钩,但没有运气:

这成功地将它们添加到存储库中,但不会将它们添加到提交中。我还尝试在提交后挂钩中使用最后两个 exec 行以及提交前检查,但也没有好处。

0 投票
1 回答
673 浏览

svn - 我正在尝试从 SVN 预提交挂钩内的控制台应用程序调用 MSTest,但出现错误?

我正在尝试从一个简单的控制台应用程序调用 MSTest.exe,该应用程序是从 SVN 预提交挂钩内部执行的。

如果我使用 TortoiseSVN 来提交,它会自动运行下面的控制台应用程序代码。

(跳过代码,看看会发生什么......)

// 代码

// 输出

这是我在 TortoiseSVN 窗口中看到的:

错误:提交失败(详细信息如下):
错误:提交被预提交挂钩(退出代码 1)阻止,输出:
错误:Microsoft (R) 测试执行命令行工具版本 10.0.30319.1
错误:版权所有 (c) Microsoft Corporation。版权所有。
错误:
错误:文件
错误:“C:\Users\myname\Documents\SVN\Test\bin\Debug\TestProject1.dll”
错误:未找到。

所以你可以看到我正确地调用了 MSTest,但它声称路径是错误的。

但是,如果我手动打开 VS 命令提示符并键入完全相同的路径,则代码运行时不会出错。

我究竟做错了什么?