4

我花了几个月的时间开发一个 Web 应用程序,我们已经接近生产阶段。很快就要在这个项目上扩大 1-3 人的开发团队了。

我在使用 SVN 方面没有太多经验,但这显然是大部分大型公司的选择,所以我猜测 SVN 的优点无疑超过了提交/签入/检查所花费的时间出局等

使用 SVN 的工作流程似乎变得有点复杂,尽管我已经阅读了 O'Reilly Media 的带有 Subversion 的版本控制,但我还不确定在单独开发或在小型(1-3 人)工作组?

你怎么做呢?在单独工作或在小型工作组中工作时,您的版本控制工作流程是什么?

谢谢!

4

3 回答 3

6

不,这不是矫枉过正。版本控制对于编程来说至关重要,无论是单独的、小团队还是大团队。它消除了对进行“错误”更改的恐惧,因为您始终可以返回到以前的版本。它会记住为什么使用提交消息进行更改。它知道一起改变了什么。还有很多

于 2010-05-31T09:56:07.363 回答
4

像任何 SCM 一样,它绝对不仅仅是备份。

  1. 您可以标记特定版本,因此您可以在构成版本的所有代码中识别一个点。
  2. 您可以管理不同同时发布的分支,例如,如果您需要在开发解决方案的新版本时管理发布的错误修复。
  3. 您可以管理多个开发人员并使用 SVN 的合并功能来处理并发更改,这样您的开发人员就不会互相踩脚并覆盖或擦除彼此的更改。

没有单片机我不会自己开发,更不用说和其他开发者一起开发了。它是您工具箱中的核心工具,值得早日使用。

我的工作流程是什么?这取决于团队和所使用的 SCM。

  1. 如果 SCM 很好地支持它(例如 Git),我将为每个错误/功能创建一个分支。SVN 在分支方面不太热,所以这可能不适用。
  2. 我定期签入/合并。如果您不经常这样做,代码库将与您的工作代码库发生分歧,随后的合并将变得更加困难。此外,您希望您的团队成员了解您正在做的事情。
  3. 我的持续集成过程(例如,我使用诸如 TeamCity/Cruisecontrol/Hudosn 之类的持续构建引擎)将构建/测试并在成功的构建/测试周期中选择性地标记发布。
  4. 我将为最终版本创建一个分支,并将在发布后对其进行维护。
于 2010-05-31T09:54:29.617 回答
2

布赖恩的回答没有什么可补充的。作为替代方案,您可能想看看分布式源代码控制系统 (DSCM),例如 Mercurial、Git 或 Bazaar。恕我直言,它们非常适合小型开发人员团体,非常易于设置,但仍设法扩展到大型项目。

一个很好的关于 Mercurial 的介绍性教程,由 Joel Spolsky 编写,可以在http://hginit.com/找到。

存储库布局
(来源:hginit.com

于 2010-05-31T10:07:36.993 回答