Label和Branch在配置管理过程中是很重要的两个概念。
Label:用于对文件进行标记特定的版本,对一堆文件标记之后,可以将具有同样标记的文件给取出来。
Branch:分支。建立分支,形成可以物理独立的空间,这样每个Branch就可以单独演化,如果有需要的话又可以融合。
为什么需要Branch呢?这个得回答配置管理的根本问题,是为了让团队成员中共享。但是,有些时候又必须在小的团队中共享,在大的团队中反而不能共享。比如说:为了客户A定制的兄弟和为了客户B定制的兄弟可能代码都是基于某一个主干版本。因为客户A,B所以有了BranchA,BranchB,当然还有岿然不动的主干版本。由于有三波人马为了不同的目标而工作,都需要改动很多共同的代码。如果都放在同一个版本中是无论如何也做不了这件事情的。
所以,Branch是为了解决共享冲突的问题,让各个分支团队能够更好的并行工作。在vss中,branch支持得很不好,在CVS中对于Branch支持得还是不错的。
在实际情况,我们可能更多的是需要Label,而不是Branch。我们需要标记,用于检出我们发布的某个版本的代码。这样当我们前行的时候,不至于找不到之前的版本:)
Label:用于对文件进行标记特定的版本,对一堆文件标记之后,可以将具有同样标记的文件给取出来。
Branch:分支。建立分支,形成可以物理独立的空间,这样每个Branch就可以单独演化,如果有需要的话又可以融合。
为什么需要Branch呢?这个得回答配置管理的根本问题,是为了让团队成员中共享。但是,有些时候又必须在小的团队中共享,在大的团队中反而不能共享。比如说:为了客户A定制的兄弟和为了客户B定制的兄弟可能代码都是基于某一个主干版本。因为客户A,B所以有了BranchA,BranchB,当然还有岿然不动的主干版本。由于有三波人马为了不同的目标而工作,都需要改动很多共同的代码。如果都放在同一个版本中是无论如何也做不了这件事情的。
所以,Branch是为了解决共享冲突的问题,让各个分支团队能够更好的并行工作。在vss中,branch支持得很不好,在CVS中对于Branch支持得还是不错的。
在实际情况,我们可能更多的是需要Label,而不是Branch。我们需要标记,用于检出我们发布的某个版本的代码。这样当我们前行的时候,不至于找不到之前的版本:)