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