基本概念:

repository:仓库,所有代码(不同的版本)都保存在仓库中。

workspace:工作空间(client veiw),当前使用的版本。比如现在repository中A.java 有两个版本1和2,B.java 有两个版本1和2,对于当前的程序员来说他的项目可能使用了A.java 的第二个版本,B.java 的第一个版本,那么这些就构成了当前的workspace。

branch:分为两种,一种是基于文件的分支,一种是基于项目的分支。1.基于文件的分支:比如开发一个文件,从1.0版本到了1.5版本,但是此时发现1.0版本就有一个bug,怎么办呢,这样做。找另一些人去修订1.0 版本,而自己在1.5版本上继续开发。然后两者合并。第二种是基于项目的分支,比如自己开发了一个OA项目,但是现在不同的公司有自己的特殊需求,怎么办呢,这样做,把这个OA 的核心copy几份,人后分别在该OA核心上开发,这样也就出现了不同的分支。当然基于项目的分支还有一种情况,比如Windows,Windows发布xp 后,但是其有很多bug,但是他是这样做的,一部分人继续开发新的版本,另一部分人开发补丁。