2011-05-03 34 views

回答

21

SCM一般意味着Software Configuration Management,其中包括CMRM(变更管理到版本管理),包括版本控制。

SVN只是一个VCS: Version Control Tool

所以一个更完整,覆盖更全面的开发生命周期,而通用:Team Fundation Server或RTC - Rational Team Concert - 都是SCM的例子。

8

SCM是一个通用术语,并不代表什么意思。我听说它的含义是“软件配置管理”,“软件变更管理”和“源代码管理”,可能还有其他的。据我所知,这基本上是市场营销。

如果您认为它的含义与后面的短语相似,那么SVN(Subversion的缩写),git和Mercurial都是特定类型的SCM系统。 Git和Mercurial大致相当。有一些细微的差异,但个人喜好是真正重要的大部分。两者都是所谓的分布式版本控制系统,这意味着不能依赖任何中心位置。每个使用它们的人都可以独立工作,并且他们或多或少地独立同步一切。

Subversion是集中式的。它旨在解决相同类型的问题,但是通过强制所有活动通过每个人都使用的位置来实现。这使得很多事情更容易管理,但代价是相当大的灵活性。再次,个人喜好决定你更喜欢哪一种。

+0

相对于git/hg来说,看到SVN是如何“以灵活性为代价让事情变得更容易”这个术语来描述是非常奇怪的 - 集中式系统远比年代久远,因此分布式系统使事情变得不同在很大程度上更好)在过去的5年。 – 2011-05-03 16:25:57

+1

我同意你 - 我个人使用git。我并不打算暗示那里的任何一种年表。我确实认为分布式系统已经大大改善了事情,但我认为他们需要更多的思考才能得到正确的结果也是事实。 SVN使事情以正确的方式变得容易;这只是与git或hg相比,svn中的正确方式并不像git/hg中的正确方式那么好。我不确定最后一句在页面上的意义是否与我脑海中的意义一样。 – deong 2011-05-03 16:36:24

9

SCM是软件配置管理,SVN是版本控制系统工具,它是SCM的一个子集。 VCS也被称为版本控制和Git,Mercurial也是VCS工具(分布式VCS更具体)。

SVN,Git,Mercurial等是版本控制工具,SCM中的一个进程。 SCM还包括构建管理,缺陷跟踪等。

4

我试过Git和Mercurial(并且目前使用Mercurial)。从我看到的Git看起来更快一点,也许更多功能,但这是一个学习曲线的代价。当我一开始尝试他们的时候,我没有其他的同事可以依靠信息,发现Git的学习曲线比Mercurial的要好得多。我还发现Mercurial从Windows(这是我的主要开发平台)使用起来更容易。

Mercurial支持Git,相反也可能是真的,所以你可以尝试任何一种,如果你发现需要,可以稍后切换。

2

SVN(Subversion)是一种提供版本控制功能的工具。开发人员使用此工具检查其代码。使用这个功能,我们可以追踪软件开发过程中对文件/代码所做的更改。

软件配置管理是一种用于追踪和控制软件开发变化的实践。它包括构建,打包和部署软件所需的所有流程。