10

我们使用 perforce 作为 Visual Studio 解决方案的源代码控制。使用 P4 和 P4V。是否可以添加客户端预提交挂钩?例如确保“调试器”一词;*.js 文件中不存在。可以在谷歌中找到一些东西。谢谢。

4

3 回答 3

5

Perforce 触发器可用于强制执行此类策略,但它们在服务器中运行,而不是在客户端运行。因此,我所知道的大多数站点都会强制执行一条规则,例如您所描述的使用服务器中的更改内容触发器的规则。

http://www.perforce.com/perforce/doc.current/manuals/cmdref/triggers.html

从你的问题来看,为什么你需要一个客户端钩子并不明显。您是否有某些原因不想使用更改内容触发器?

也许您可能会考虑将您的工作流程重新构建为代码审查流程,并在您选择的代码审查工具中实施类似的策略。

于 2013-04-17T13:47:38.850 回答
4

您可以使用的一种方法是“自定义工具”: https ://www.perforce.com/perforce/doc.current/manuals/p4v/custom_tools.html

基本上,您将编写一个脚本,将更改列表作为参数检查更改列表中每个文件的条件,如果成功,则调用 p4 commit。

于 2016-05-24T01:37:05.003 回答
1

使用最新git-p4的 . 我的钩子补丁p4-pre-submit被合并到 Git 的next分支中。

钩子是一个简单的可执行脚本,如果脚本以非零状态存在,它将停止提交过程以启动。所以p4-pre-submithook 非常安全,没有任何副作用。

有关详细信息,请参阅https://github.com/git/git/blob/next/Documentation/git-p4.txt

请注意git-p4是一个独立的python脚本。它不依赖于任何特定版本的 git。所以只能升级git-p4

除了退出状态外,钩子p4-pre-submit没有其他交互。git/git-p4所以你可以用任何语言编写钩子(我推荐python)。

这是示例.git/hooks/p4-pre-submit

#!/bin/sh
cd $GIT_DIR && make test
于 2018-08-15T05:12:39.490 回答