我们使用Subversion,除了像我这样的一些人以外,在Subversion中几乎没有分支分支或合并的经验。我的Subversion经验仅限于简单的功能分支,在这些分支中,合并和树冲突虽然并非十分罕见,但并非很难解决。
鉴于此,我正在帮助管理一个项目,在该项目中,我们目前对主干方法的 promise 根本无法满足我们的需求。我向我的本地化团队介绍了功能分支和合并功能,我们取得了一些成功。但是,简单的功能分支仍然无法回答我们所有的问题,例如:
似乎git-flow as defined here可以回答很多这样的问题。我在Mercurial中对该方法进行了实验,似乎也可以在那里实现该方法。令人遗憾的是,此时迁移到DVCS的工作不在桌上。
但是,我在Subversion中模仿此方法的简短尝试因许多合并和树冲突而失败。合并选项和边缘情况很多而且令人困惑。
可以使用Subversion实现git-flow吗?如果可以,那么痛苦程度是多少?
最佳答案
我们使用所谓的不稳定主干开发方法。这是Subversion的创建者在创建Subversion时所想到的开发方法。它很容易实现。
这是一个工作原理:
会有一些合并。这主要是将发布分支上修复的缺陷合并回主干。有以下三种选择:
--record-only
标志合并)。 您当然会意识到这种方法需要进行规划。您必须确定工作的优先级,以便开发人员在开发将来的版本之前先完成即将发布的版本的工作。仅当您对即将发布的版本不再有足够的工作来使所有开发人员忙碌时,您才分支。
您可以实现标准的Git工作流程,该工作流程针对每个开发人员或问题使用单独的开发分支,然后将这些更改交付到主干。这将需要很多分支,每个开发人员/功能都需要一个分支。
您首先要从主干合并到分支以重新构建代码基础。完成基础调整后,您可以使用
--reintegrate
开关从分支合并回主干。在1.6之前的版本中,由于--reintegrate
困惑了合并跟踪,因此您假设要删除该分支并重新创建它。但是,此问题已在版本1.6.x及更高版本中修复。关于svn - 可以在Subversion中使用git-flow模型吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13345667/