分别对每个文件进行版本控制的版本控制系统有哪些优势?


15

在过去的几年中,我已经使用了几种不同的版本控制系统。对我来说,它们之间的根本区别之一是它们是分别对文件进行版本控制(每个文件具有其自己单独的版本编号和历史记录)还是对整个存储库进行版本控制(“提交”或版本代表整个存储库的快照) 。

一些“按文件”版本控制系统:

  • CVS
  • ClearCase
  • 可视SourceSafe

一些“整个存储库”版本控制系统:

  • SVN
  • 吉特
  • 水银

以我的经验,每个文件的版本控制系统仅导致问题,并且需要更多的配置和维护才能正确使用(例如,ClearCase中的“ config specs”)。我有很多实例,其中一位同事正在更改不相关的文件并破坏了理想的隔离开发路线。

这些按文件版本控制系统的优点是什么?每个文件版本控制系统没有的“整个存储库”版本控制系统有什么问题?


3
我认为主要是历史上的事情,现在我们正从面向文件的系统转向面向变更集的系统,但是从今天的观点来看,很难理解为什么人们甚至尝试了按文件的方法。很好的问题!
blubb 2011年

如果这个问题引起争议,我们深表歉意。这是最近有些沮丧的产物。
Mike Daniels

1
@迈克·丹尼尔斯(Mike Daniels):(至少对我而言)并非如此,因为您清楚地要求优势。
blubb 2011年

这两种观点只是不同的约定。任何赞成一方胜于另一方的论点只会引起另一方的游击队的反驳。例如,如果您希望在Clearcase中执行“整体复制”行为,则可以按日期自定义配置规范。
mouviciel 2011年

SVN每个文件都有一个版本,还是在上一个版本中也有更改?
克拉姆2011年

Answers:



3

从同一存储库构建产品系列(多个软件产品)时,每个文件都有一个优势。

某些客户合同环境要求提供证据,证明其代码下降仅具有所需的更改,而没有其他更改。如果文件版本号仍然相同,这将非常容易。

这不是我凭空冒出来的一个随机例子。

这是我最后一次向美国军队交付软件更新的情况,这是他们从我以前的雇主那里购买了大量软件的系统。合同的美元价值以数十亿美元为单位(当时美元的价值要高得多)

因此它确实有帮助。

奇怪的是:我现在在哪里工作,我们也会为每位客户运送不同的交付物...。(如果您想知道,那不是我决定的事情。)

我怀疑它在国防/航空航天领域比在收缩包装或网络应用中更为普遍。


3
但是整个文件存储库的一个分支也可以满足相同的需求。例如,在bzr中,分支完全独立于主线,直到您合并(或共享存储库)为止。
edA-qa mort-ora-y

1
我无法想到一种情况,即“整个存储库”系统中的分支不会比依靠VCS外部的状态来确定在“每个文件” VCS中使用哪些文件更好地表达所需的状态。uni之后的第一份工作是使用RCS,一堆脚本来对该项目进行版本控制以及一个顶层脚本来对版本脚本进行版本控制-绝对是一场噩梦,是的,那也是军事项目。* 8')
Mark Booth

@Mark Booth,客户知道更改了哪些文件以获取所需的修复程序。因此,物理配置审核是通过版本控制号进行的
Tim Williscroft11年

我的意思是,版本+已审核的补丁程序在不同的位置(VCS和审核程序)需要不同的信息。通过“整个存储库”系统中的分支,这两个状态被记录为单独的实体。现在,相同的信息在VCS和审核系统之间重复,并且应该始终匹配。git甚至可以区分作者和提交者,因此您可以保留一个“审核的”存储库,您可以在其中了解创建补丁的人(作者)和审核的人(提交者)。给我们提供一个示例情况,我将反转-1。
Mark Booth,

@Mark展位有哪些补丁?他们知道他们的软件是这组文件A 1.01 B 1.05 D 1.55 E 1.44 F 1.01和他们接受的版本的SVD具有逐文件更改信息,例如E已更改为修复缺陷1104,旧版本1.43,新版本1.44 。如果我们从1.01版开始更改F,天堂会帮助我们。情况更加复杂,因为确实存在一些已修复的错误,他们不希望对其进行更改。这些人希望进行最少的更改,以仅选择从一年的开发中精心挑选的一些功能。事后错误修正选择。
Tim Williscroft 2011年

3

每个文件的版本控制没有任何优势。

缺点,另一方面,是丰富和明显。


0

我可以说“按文件”版本控制系统除了实现VCS之外没有其他明显优势。当它是“按文件”版本时,VCS的编码人员会很乐意进行编码。我同意这一点,它是历史上出现的。


0

具有相关文件时,按文件方式没有任何优势。这是开发设置中最常见的情况。

在少数特殊情况下-/ etc或。我通常只有Unix的主目录中的文件-您正在处理(主要是)不相关的文件。然后拥有一个坚持保持不相关更改保持同步的系统可能会很麻烦。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.