我们使用 perforce 作为 Visual Studio 解决方案的源代码控制。使用 P4 和 P4V。是否可以添加客户端预提交挂钩?例如确保“调试器”一词;*.js 文件中不存在。可以在谷歌中找到一些东西。谢谢。
3 回答
Perforce 触发器可用于强制执行此类策略,但它们在服务器中运行,而不是在客户端运行。因此,我所知道的大多数站点都会强制执行一条规则,例如您所描述的使用服务器中的更改内容触发器的规则。
http://www.perforce.com/perforce/doc.current/manuals/cmdref/triggers.html
从你的问题来看,为什么你需要一个客户端钩子并不明显。您是否有某些原因不想使用更改内容触发器?
也许您可能会考虑将您的工作流程重新构建为代码审查流程,并在您选择的代码审查工具中实施类似的策略。
您可以使用的一种方法是“自定义工具”: https ://www.perforce.com/perforce/doc.current/manuals/p4v/custom_tools.html
基本上,您将编写一个脚本,将更改列表作为参数检查更改列表中每个文件的条件,如果成功,则调用 p4 commit。
使用最新git-p4
的 . 我的钩子补丁p4-pre-submit
被合并到 Git 的next
分支中。
钩子是一个简单的可执行脚本,如果脚本以非零状态存在,它将停止提交过程以启动。所以p4-pre-submit
hook 非常安全,没有任何副作用。
有关详细信息,请参阅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