Version control 我的小公司已经到了需要风投的地步。I';I’我想先计划一下我们实际的版本控制策略

Version control 我的小公司已经到了需要风投的地步。I';I’我想先计划一下我们实际的版本控制策略,version-control,branch,trunk,Version Control,Branch,Trunk,首先,请原谅我的写作:我是一名刚从大学毕业的程序员,没有什么专业经验。如果有什么不清楚的地方,请提出来,我会尽力澄清 我期待着使用VCS来帮助我们组织一切。跟踪bug修复、新功能的开发、合并和新版本的开发应该简化、澄清并变得更容易 这就是我们计划如何使用版本控制(鉴于我对VCS的初步了解): 为了给出一个清晰的示例,我们将当前和发布的软件版本称为V1,正在开发的下一个版本称为V2 我们计划从V1开始作为我们树的主干 将为V2的开发设立分支机构。这个分支永远不会重新合并,因此它实际上是V2的新主

首先,请原谅我的写作:我是一名刚从大学毕业的程序员,没有什么专业经验。如果有什么不清楚的地方,请提出来,我会尽力澄清

我期待着使用VCS来帮助我们组织一切。跟踪bug修复、新功能的开发、合并和新版本的开发应该简化、澄清并变得更容易

这就是我们计划如何使用版本控制(鉴于我对VCS的初步了解):

为了给出一个清晰的示例,我们将当前和发布的软件版本称为V1,正在开发的下一个版本称为V2

  • 我们计划从V1开始作为我们树的主干

  • 将为V2的开发设立分支机构。这个分支永远不会重新合并,因此它实际上是V2的新主干

  • 分支将从这个新主干中分离出来,用于开发V2的新功能,并在完成后重新合并

  • 如果需要对V1进行bug修复,则会从V1主干生成分支,完成分支,并合并回V1主干。V2开发需要暂停,因为V2主干从更改的V1主干更新,然后所有V2分支从新更改的V2主干更新。然后各个V2分支可以恢复开发

  • 当足够多的特性从V2主干分支出来、完成并重新合并后,最终是时候发布V2并从V3开始了。V3将从V2分支出来,再也不会合并回来(就像V1中的V2一样),并且过程将再次开始

这是一个合理的模式吗?它会有效吗?由于我未受过教育的计划尝试,是否可能随着时间的推移而出现问题


请让我知道我还能提供什么来帮助你帮助我。谢谢大家!

你可能想读的SVN上的文档是SVN书籍,因为已经观察到这个问题是离题的,但是在它被删除之前。。。我会推荐Mercurial(从现在起我将称之为Hg)。我们曾经使用SVN,然后转移到Hg,合并和分支开发在Hg中的创伤要小得多。它非常稳定,有很好的文档记录,在这一点上已经存在多年了。我总是建议看一下本教程,其中介绍了两种方法之间的差异:。如果你使用的是Windows Turtoisehg,那么它是一个很好的客户端。我认为Hg可能是SVN和Git之间的中间地带。请看:它集成了bug tracker、wiki和项目文档,并且,虽然是DVCS,但在默认设置下,它使用其“自动同步”功能模仿集中式VCS的行为。它是自托管的,因为它可以作为守护进程/服务在任何受支持的平台上运行,而不需要任何额外的麻烦。Fossil的一个可能的缺点是它没有任何“转到”桌面GUI解决方案(虽然它确实存在一些第三方前端),因此尽管它的自托管web UI满足了90%的需求,并提交了更改,切换分支和推送/获取是通过其命令行完成的。您可能想要阅读的SVN上的文档是SVNBook,正如已经观察到的一样。这个问题与主题无关,但在删除之前。。。我会推荐Mercurial(从现在起我将称之为Hg)。我们曾经使用SVN,然后转移到Hg,合并和分支开发在Hg中的创伤要小得多。它非常稳定,有很好的文档记录,在这一点上已经存在多年了。我总是建议看一下本教程,其中介绍了两种方法之间的差异:。如果你使用的是Windows Turtoisehg,那么它是一个很好的客户端。我认为Hg可能是SVN和Git之间的中间地带。请看:它集成了bug tracker、wiki和项目文档,并且,虽然是DVCS,但在默认设置下,它使用其“自动同步”功能模仿集中式VCS的行为。它是自托管的,因为它可以作为守护进程/服务在任何受支持的平台上运行,而不需要任何额外的麻烦。Fossil的一个可能的缺点是它没有任何“转到”桌面GUI解决方案(虽然它确实存在一些第三方前端),因此尽管它的自托管web UI满足了90%的需求,并提交了更改,切换分支和推送/获取通过其命令行完成。