是否有充分的理由合并软件中的短期标记变更?

时间:2013-08-21 20:27:20

标签: git

假设我有一些软件的最新版本是1.1。从那里开始继续发展:

  • master
  • 上的正常更新
  • 临时更改意味着将在版本1.2中发布一段时间,但不包含在任何后续版本中。例如,想象一个april_fools分支。

我的计划是将临时代码标记为v1.2并将其释放,但永远不会将其合并为主。这是因为如果我合并它:

  • 我必须处理合并冲突
  • 一旦解决了所有问题,我想要还原所有临时代码

版本1.3将根据master上的最新提交进行标记和发布。

这似乎是最干净的解决方案,但我有点犹豫。 我是否应该担心版本1.1和1.3没有干预提交标记为1.2的提交版本?这是否会导致以后开发人员查看提交历史记录的混淆?

3 个答案:

答案 0 :(得分:2)

你的计划对我来说听起来不错。如果我正在使用存储库并且看到v1.2被跳过了,它可能会让我想知道为什么,我可能会记下以后再查看它,但它不会真的阻止我做任何工作。我之前使用过带有奇怪版本编号的软件,​​所以我可能只是假设它在过去是一些内部的小混乱。

对于好奇的开发人员,您可以在项目文档中 - 在项目维基或docs文件夹或其他内容中记录“v1.2在哪里?”。虽然如果您的唯一文档是自述文件,那么添加它可能并不重要。

答案 1 :(得分:2)

简答:不。

标记是对DAG中提交的引用,您并不真正关心该图的历史连续性
您只关心获取标签引用的确切内容。

如果带有标签1.2的分支与带有1.3的主分支之间没有合并,则会强调开发过程中的明显中断(因为重构)。

只要semantic of the version number policy得到尊重,(1.2 - > 1.3完全API兼容性),您就可以了。

答案 2 :(得分:2)

分支从彼此转移的时间越长,合并的时间就越差,如果最终你将被迫这样做。

如果以后丢弃当前的主线,那么所有完成的工作都将浪费掉。这个决定所用的时间越长,情况就越糟糕。再次糟糕。

由于它是一个永远不打算合并的叉子,所以不要用1.2标记它。
给它一个有用的名字,这会让你了解那里发生的事情。

即使您不知道发生了什么变化。让它成为白痴。你现在和你在半年内不是同一个人,知识明智。