【发布时间】:2012-04-01 18:18:29
【问题描述】:
我有一个项目,其中有一些文件很脆弱,即使整个程序似乎可以正常工作,轻微的错误也可能导致安全问题。因此,我希望 git 在合并期间始终验证任何自动修改的结果。
如果我理解正确的话,自定义合并驱动程序就是我想要的。我想出的最好的方法是在自定义合并驱动程序中使用 git-merge-file 来获得正常的合并结果,然后退出 1 以将结果始终标记为冲突。这样 git 将在合并期间停止,我可以在完成合并之前检查合并结果。
但是,对该文件的预期更改非常小,最好的方法是能够运行类似于“git add -i”并选择“patch”并一次应用一个大块的内容。
是否有一种简单的方法可以编写一个合并驱动程序,该驱动程序的行为类似于“git add -i”,用于对该文件的所有合并(其中可能应用的块是自动合并的结果)?
另外,如果我理解正确的话,合并驱动程序只会在文件级冲突时被调用。是否可以为特殊标记的文件请求类似的手动验证?我正在考虑在进行合并之前在 gitattributes 中将新文件标记为“脆弱”,然后一些 git merge 魔法(或过滤魔法)会要求我验证新的特殊文件是否适用于合并的分支。
【问题讨论】:
-
您为什么不简单地查看合并的差异?
-
我希望在发生此类合并时自动提醒。通常可以通过自动化测试和/或构建来测试合并结果,但对于易碎的东西,需要进行额外的审查来确定。我想在任何团队成员合并任何涉及任何此类特殊文件的内容时强制进行此类审查。
标签: git merge interactive