2016-11-21 81 views
0

我看到两个在CVS的情况下互换使用。我明白分支是git,clearcase等发展的分支线.CVS文献有点混乱。根据我的理解,他们是不同的。请给出意见。CVS中的标签和分支有什么区别?他们是同义词吗?

+1

可能的重复[标签与分支有什么不同?我应该用哪个,在这里?](http://stackoverflow.com/questions/1457103/how-is-a-tag-different-from-a-branch-which-should-i-use-here) –

+0

@EvanTrimboli :这个问题是关于git的 - 这个问题是关于CVS的。 –

+0

答案基本相同。 –

回答

1

它们不是同义词。

如果你熟悉git,从高级概念的观点来看,它们在CVS和git中大致相同。

“分支”是一行工作,您可以检出并提交更改。分支包含多个文件,每个文件都有一个分支特定的历史记录。

“标签”是指从某个时间点开始的仓库快照。您无法将提交添加到标签。

下面是一个例子图片

  tag v1.1 
      | 
-o---o---o---o---o---o HEAD (the "main trunk") 
    \ 
    \---o---o---o feature_branch 

这是坦率地说都是相当标准的软件术语。

一些具体CVS-注意事项:

  • 许多CVS命令将采取分支或标记。所以你可以cvs update -r <branch>cvs update -r <tag>(就像你可以在git中一样)。如果你已经更新到一个标签,你不能提交,如果你已经更新到一个分支,你可以。 (与git没什么不同)即使CVS实际用于“标签或分支”,CVS也只使用一个字段来存储这个“粘性标签”。
  • 实际上,在CVS中,标签不需要在任何历史时间点表示任何一个分支的状态,但这对于您所要求的来说太高级了。您可以在cvs中将任何文件子集和文件版本组合在一起。
  • CVS实际上是以文件为中心而不是以回购为中心的,所以上面的图表显示回购就像是一个单位一样具有欺骗性。