4

我目前正在研究使用 Git 管理来自 OpenInsight 应用程序的源代码。由于 OI 代码存储在数据库表中,因此需要进行一定的手动工作才能将源代码导出为文本,反之亦然。

到目前为止,我已经设法使用 Git 钩子自动化了很多这项工作,但是缺少“预结帐”钩子给了我一个问题。

当用户切换分支时,我有一个结帐后挂钩来区分新旧分支并存储已更改过程的列表。当用户下次启动 OI 时,更改会从文本文件中提取并编译.. 到目前为止一切顺利.. 但是,如果用户要切换分支,比如说从 A 到 B,然后再次切换到 C 而不启动OI 然后 OI 中的源将用于分支 A,但差异将在 B 和 C 之间。

为了解决这个问题,我希望能够使用预检出挂钩来检查是否存在包含未编译更改列表的文件,并停止用户切换分支,直到它们被编译。还有其他建议吗停止结帐的方法?

4

2 回答 2

1

我最近也在调查这个问题,发现了一个讨论当前(嗯...... 2010)状态的线程githooks

http://git.661346.n2.nabble.com/Why-there-is-no-pre-checkout-hook-td5638042.html

从线程:

Óscar Fuentes 写道:
...
因为您可以使用您的脚本代替“git checkout”。

您是否考虑过编写开发人员可以作为其开发工作流程的一部分的脚本?这样您就可以检查是否存在未编译的更改列表。这基本上就是我们最终要做的事情,它确实帮助我们简化/标准化了我们的工作流程。

于 2013-12-11T20:58:15.723 回答
0

你的问题是你做错了差异。

但是,如果用户要切换分支,比如说从 A 到 B,然后在不启动 OI 的情况下再次切换到 C,那么 OI 中的源将用于分支 A,但差异将在 B 和 C 之间。

当您说自己应该将它们基于您的 OI 开始时,您是基于 git 活动的差异转速。

所以钩子 OI 开始,检查头部转速,上次和这次之间的差异。

于 2019-08-12T20:48:34.430 回答