源控制与版本控制?

时间:2009-06-29 07:04:19

标签: version-control naming

哪个是存储源代码版本的系统的正确名称,如SVN或TFS?

我一直称它为源代码控制,但像维基百科这样的地方称它为版本控制?

为了使像这样的更复杂的网站,有一个标签?

12 个答案:

答案 0 :(得分:77)

  • 版本控制是更通用的术语,用于源代码控制工具,也用于其他工具(Word,OpenOffice,...)。它引用了一个版本。

  • 源代码管理提供分支和合并的修订控制,并非在所有修订工具中都可用(Word不是源代码管理,但提供版本控制功能)

    < / LI>
  • 版本控制是比Source Control更通用的术语,因为它管理任何内容的版本(来源或二进制文件或任何类型的文档)

注意:SCM代表源代码管理,也代表软件代码管理,以反映相同的想法(不仅仅是“来源”管理)。
另外,SCM引入了文件组之间依赖关系的概念 它还可以包括变更生命周期的概念(开始变更,关闭变更,......),这会导致变更请求系统。

答案 1 :(得分:13)

我喜欢这样想:

版本控制他们做的

源代码管理我用它们的目的。

: - )

答案 2 :(得分:13)

有三个同义词描述了几乎相同的东西:

  1. 修订控制。处理修订(文档/工件审查和文档/工件的后续版本)或数字(作为修订概念的抽象)。
  2. 来源控制。处理文本(源)文件,而不是二进制文件。只要更容易进行比较并在 text 文件之间获得差异,这种差异就起到了很大的作用。有一系列与源代码管理相关的基本工具:diffdiff3patch等。这组工具可以扩展为源代码控制解决方案。这种解决方案的示例是RCS。
  3. 源代码管理。对源代码执行更复杂的操作:将其存储在repository中,可以创建单独的branches。还假设分支可以是merged。源代码管理的另一部分是tagging。源代码管理的一个问题是它有缩写SCM。此缩写用于描述更广泛的活动 - 软件配置管理。存在很多混淆,因为源代码管理软件配置管理的一个子集,它还处理构建管理等活动部署管理持续集成依赖关系管理发布管理等。
  4. 版本控制。它用作源代码管理这样的术语的替代,以避免歧义。它结合了版本控制源代码控制这两个概念,使其能够描述几乎相同的概念。目前,术语版本控制源代码控制版本控制代替,考虑到广泛的工具(CVS,SVN)更合适,Git,Mercurial,ClearCase,Perforce,VSS等)同时解决版本控制源代码控制的任务。
  5. 图片更清楚地说明了所有这些概念之间的区别:

    enter image description here

答案 3 :(得分:5)

  • 版本控制系统(VCS)是最常用的术语
  • 源代码管理(SCM)用于git,但它有点发明,可能与已经在软件行业中使用的软件配置管理相混淆这不是一回事。

答案 4 :(得分:4)

某些系统(如SVN)有一个术语 revision ,它代表与存储库中所有文件的特定版本集相关联的数字。在此类系统中, revision SVN revision )实质上是指 version sources version )。否则版本控制版本控制是相同的术语。

答案 5 :(得分:4)

使用的术语不是很精确。有一篇文章描述了五个相关的维度。用于软件开发的数据管理工具往往不能同时支持三个以上的软件开发。如果你想支持所有五个,你必须描述一个开发过程:

  • 版本(语义:修改)
  • 查看(语义:等价,推导)
  • 层次结构(语义:由...组成)
  • 状态(语义:批准,辅助功能)
  • 变体(语义:产品变体)

Peter van den Hamer和Kees Lepoeter(1996)管理设计数据:CAD框架,配置管理和产品数据管理的五个维度,IEEE会议论文集,Vol。 1996年1月第84号第1号

答案 6 :(得分:3)

没有“正确”的名称,四个常用名称是:

  • 版本控制系统
  • 修订控制系统
  • 源控制系统
  • 源代码管理系统

答案 7 :(得分:2)

另一个名称是:版本控制

根据本网站上使用的标签,“源代码管理”是最受欢迎的(这是很正常的,因为这个网站是关于编程的):

  • 源代码管理(633个标签)
  • 版本控制(587)
  • 修订控制(31)

答案 8 :(得分:1)

MIL-STD 973描述配置管理。

软件配置管理完全相同。

有关SCM / CM的详细说明,请参阅CMMI

您所说的系统是版本控制系统。 他们发布了版本。

旧SCCS是源代码控制系统。

源代码控制系统维护修订历史记录。

假设您从修订版

更改文件

1.1,1.2,1.3。

在1.3我们发布了我们产品的“Awesome Edition”。

1.3是修订版 AwesomeEdition是一个版本。

在像CVS这样的系统中,修订会在编号更改时发生,而标记会标记版本。 SVN类型存储库修订版编号会混淆期望MIL-STD的政府客户 一种行为。

变革管理标准的好处在于有很多选择。

答案 9 :(得分:0)

如果有历史优先权,则该术语应为源代码控制 - 请参阅http://en.wikipedia.org/wiki/Source_Code_Control_System

答案 10 :(得分:0)

那么,你到底在想什么?

我认为没有一个正确的术语。这两个术语以及其他回复中已经提到的其他术语基本上都用于相同的事情。

你正在与之交谈的人即使使用同一个词,也会将其与略微不同的含义联系起来 - 即使使用另一个词,它们的含义也完全相同。

然后,围绕这些事物使用的词汇也可以在这个概念的不同软件实现的圈子中不同(或附加到不同的含义)。

在写这篇文章时,我想到这是一种非常自然的现象 - 在其他方面你也有多个词代表基本相同的含义 - 而有些人则认为实际上存在细微差别,有些人会说这些差异并不存在或不值得思考。当两个人使用完全相同的单词时,它永远不能保证,它们的确意味着完全相同的东西。

答案 11 :(得分:0)

我添加了评论,但我认为它也有资格获得答案。我有一些不同的观点,然后已经表达了一些其他评论。

在一般的SCM(软件配置管理)或(源代码管理 - 派生术语)中,它很容易理解,因为它被用作一个总括性术语,包括版本控制以及基线管理等其他技术。见http://en.wikipedia.org/wiki/Software_configuration_management。一般而言,从CVS到Git的现代SCM工具包括这两种技术和许多更有用的功能,如:权限控制,权限管理,安全审计,允许SCM流程定制(ClearCase),与构建系统集成和问题跟踪软件等...我认为该列表是开放的,因为任何与软件变更和管理相关的内容都可以进入此处。

因此,主要的困惑来自于理解版本控制,版本控制和可能的源代码控制之间的区别。首先,所有条款包括&#34; source&#34;这些都是派生的术语,我的意思是有些人会被所有这些通用术语(配置管理 - 那是什么?)所困扰,并且坚持认为他们特别使用源代码并且他们不关心其他用例;这是公平的。

关于版本控制与版本控制我认为正确的术语(在SVN,Git等工具的上下文中)是版本控制。在我看来,使用术语版本控制时,重点是管理(不仅仅是管理版本)源代码文件(而不仅仅是管理版本),而使用版本控制时,重点仅在于管理文件的版本。

理论上,有人可以编写一个软件,允许跟踪和管理二进制文件而不需要二进制差异和合并支持,并且可以调用此版本控制系统。然而,对于像SVN这样的工具,Git这些还允许管理更改到文件:差异,合并以及Git的着名变基。

总之,版本控制包括版本控制,更适用于CVS,SVN,Git等命名工具;源控制是一个派生术语,如果想要命名特定的SCM方面,应该避免使用。

SCM > Revision Control > Version Control