我已经厌倦了所有那些只能在线或通过电子邮件使用的问题跟踪系统,所以我一直在寻找可以复制和合并的数据库中的问题(因此可以离线使用) )。
为了让我的生活更轻松,我想我应该使用这样的数据库重用现有工具,Git浮现在脑海中。但是为了使它运行良好,重要的是“合并”不会产生太多冲突,即明智地使用Git的合并分支的内置算法。
截至目前,我认为给定问题中的各种消息不应保存在文件中(将它们全部保存在单个文件中会导致该文件发生冲突,并将它们保存在单独的文件中会导致出现问题保持它们有序)但应该存储在提交消息中,因此不会因为这些消息而产生冲突,git log <issue-dir>
自然会以正确的顺序显示消息。
但现在的问题是我需要确保提交消息与正确的“问题目录”相关联(我保留其余数据,即主要是问题的状态)。为此,我需要确保提交修改该目录中的某个文件,但如果新消息不影响问题的状态,则可能没有任何文件需要更改,所以我必须明确地修改文件,这会带来引发冲突的风险。知道如何告诉Git“空提交”应该与特定的子目录相关联吗?
答案 0 :(得分:0)
有几个bug跟踪器可以在你的版本控制中运行;任何地方的错误都会浮现在脑海中。使用Bugs Everywhere,您可以将错误报告放在与代码相同的存储库中。每个错误报告都是一个单独的文件,通常使用be命令行程序进行编辑。这非常适合您在存储库中已经进行的分支,因为您可以查看分支并查看该时间点上所有错误的状态。
在提交消息中存储错误报告似乎不合适。你如何更新bug?您无法在不使每次后续提交失效的情况下更新提交消息。
我认为你不能防止与你的设计发生合并冲突;你必须强迫检测到合并冲突的人在推送之前将他们对bug的更改重新定义。
答案 1 :(得分:0)
好的,我没有找到一个干净的方法将空提交的消息与特定目录链接,除了添加一些根据我的口味太难看的虚拟文件。
但我最终解决了一个稍微不同的问题:我没有为每个错误单独的目录,而是将每个错误放在自己的分支中。这样,就不需要执行任何体操来将提交消息与特定错误相匹配。此外,这可以避免人为地交错来自不同错误的提交消息,并使git merge
错误成为可能,或者在不同的错误数据库之间共享一些错误子集。
如果有兴趣,我已将我的代码放在https://gitlab.com/monnier/bugit