【发布时间】:2013-04-09 19:54:33
【问题描述】:
我们使用 perforce 作为 Visual Studio 解决方案的源代码控制。 使用 P4 和 P4V。 是否可以添加客户端预提交挂钩?例如确保“调试器”一词; *.js 文件中不存在。 可以在谷歌中找到一些东西。 谢谢。
【问题讨论】:
我们使用 perforce 作为 Visual Studio 解决方案的源代码控制。 使用 P4 和 P4V。 是否可以添加客户端预提交挂钩?例如确保“调试器”一词; *.js 文件中不存在。 可以在谷歌中找到一些东西。 谢谢。
【问题讨论】:
使用最新的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
【讨论】:
您可以使用的一种方法是“自定义工具”: https://www.perforce.com/perforce/doc.current/manuals/p4v/custom_tools.html
基本上,您会编写一个脚本,将更改列表作为参数检查更改列表中每个文件的条件,如果成功则调用 p4 commit。
【讨论】:
Perforce 触发器可用于强制执行此类策略,但它们在服务器中运行,而不是在客户端运行。因此,我知道的大多数网站都会强制执行一条规则,例如您所描述的使用服务器中的更改内容触发器的规则。
http://www.perforce.com/perforce/doc.current/manuals/cmdref/triggers.html
您的问题并不明显,为什么您需要有一个客户端挂钩。您是否出于某些原因不想使用更改内容触发器?
也许您可以考虑将您的工作流程重新构建为代码审查流程,并在您选择的代码审查工具中实施类似的政策。
【讨论】: