【发布时间】:2021-09-16 05:39:58
【问题描述】:
我有一个 git 存储库,其中包含源目录中的代码和测试目录中的测试。
我希望开发人员只能提交到同一分支中的源或测试目录。因此,如果开发人员开始使用源代码,他就不能再贡献测试,反之亦然。
对于位于另一个分支的另一个功能,人员的角色可以改变。
我正在考虑 git-hooks,尤其是客户端上的 pre-commit-hook(我知道开发人员可以解决)以及服务器上的 pre-push(开发人员无权访问 hooks 目录)。
在 git hook 脚本中,我想获取所有现有提交(如何获取分支的所有哈希?),检查它们是否在另一个目录中已经有更改,然后是有新更改的目录,或者是否有两个目录(源和测试)的新变化。
有没有更好的解决方案来满足我的需求?
更新: 该项目位于 SIL-4 环境中(参见https://en.wikipedia.org/wiki/Safety_integrity_level),因此这里不应该讨论开发人员和测试人员的权力分离感。这只是一个要求,不能更改。
【问题讨论】:
-
我的 2c:这似乎是一个糟糕的要求——到目前为止你尝试过什么?
-
你为什么要这样做? cmiiw,这是否意味着从测试开始的 smone 只能提交测试......而从源代码开始的 smone 只能提交源代码?
-
如果你真的想这样做,我的想法是在路径上执行
git status和grep。如果它同时具有源和测试路径,则不允许提交。至于开发人员从哪里开始工作,请检查所有更改文件的时间戳并获取第一个更改文件。