我们是由4名开发人员/朋友组成的团队,位于不同的地点。我们都已经开始在A ProjectX上工作,并使用Subversion创建了分支A、B、C和D。
我们只有控制源代码的版本的基本知识。有一天,我们中的一个人试图将分支A与B、C和D合并,B试图与A、C和D合并(他们甚至不知道如何合并:D,只需右击> merge >合并一系列修订)--我们找到了一些冲突,解决了它们。再次尝试合并,再次右击.)又有冲突了。
现在所有的代码都搞砸了。我们有4个不同的代码副本(D缺少B的功能,但有C等)。因此,我在这里浏览了大量的线程,阅读了SVN的书,特别是这篇文章(如何正确地分支)帮助我理解了如何合并分支和主干。我想我对未来有了更好的理解。但我怎样才能摆脱现状呢?
我的问题是:
请建议我们应该使用什么样的工作流程?所以这是维护代码的最小痛苦。谢谢。
发布于 2009-09-29 15:18:23
我不会为每个开发人员创建一个分支。我推荐一个连续积分流程,在这个过程中,所有四个人都可以从一个“主干”中签出,并频繁地合并更改--每天都有很多次。理想情况下,您应该有一个标准化的构建工具(例如Maven、Ant等)。和构建调度器(例如Hudson、Cruise、TeamCity等)。有了这两个工具,在SCM工具(Subversion)之上,您就可以有一个过程,不断地构建所有更改,签入主干,并在出现问题时给所有开发人员发电子邮件。这可以保护您不通过糟糕的更改或合并来破坏构建,同时允许您保持一个轻量级的分支结构(即一个分支--主干)。
分支使得您的代码更改与您的队友的代码更改更难集成。分支应该真正用于,嗯,分支-创建您的软件的特殊管理的“分支”。例如,如果您正在发布1.0版本的软件,那么最好在主干上创建一个1.0分支(在开发之后,但在发布之前),这样您就可以在不影响主干上正在进行的开发(可能是2.0版)的情况下维护这个版本。
我建议抓住带有Subversion的实用版本控制。这是一个相当坚实的SCM概述和颠覆的细节。
发布于 2009-09-29 15:14:35
发布于 2009-09-29 16:14:47
和另一个借口,张贴一个链接到埃里克Sink的源代码管理方法。
这是我发现的关于源代码管理的最好的介绍,无论您使用什么工具,都是相关的。
https://stackoverflow.com/questions/1493129
复制相似问题