CAS、GIT、SVN、CVS

一、CAS

CAS是英文单词CompareAndSwap的缩写,中文意思是:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。

CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。

二、项目版本管理

1.GIT(分布式版本管理工具)

step1:安装

step2:配置
            $ git config --global user.name "Your Name"
            $ git config --global user.email "[email protected]"

step3:创建本地仓库
            git init
            本地仓库所在目录就叫工作空间
            git add filename     ------将文件提交到暂存区
            git commit -m "对提交文件的描述"      ------清空暂存区,一次性提交到本地仓库
         



优点

    1、分布式开发时,可以git clone克隆一个本地版本,然后在本地进行操作提交,本地可以完成一个完整的版本控制。在发布的时候,使用git push来推送到远程即可。

    2、git分支的本质是一个指向提交快照的指针,速度快、灵活,分支之间可以任意切换。都可以在本地进行操作可以不同步到远程。

    3、冲突解决,多人开发很容易就会出现冲突,可以先pull远程到本地,然后在本地合并一下分支,解决好冲突,在push到远程即可。

    4、离线工作,如果git服务器出现问题,也可以在本地进行切换分支的操作,等联网后再提交、合并等操作。

缺点

    1、git没有严格的权限控制,一般是通过系统设置文件的读写权限来做权限控制。

    2、工作目录只能是整个目录,而svn可以单独checkout某个有权限的目录。

    3、git上手可能没有svn那边顺手,需要经过学习一下。

2.SVN、CVS(集中式版本管理工具)

(1)SVN

SVN是Subversion的简称,目前是Apache项目底下的一个开放源代码的版本控制系统,它的设计目标就是取代CVS。

优点

   1、集中式管理,管理方式在服务端配置好,客户端只需要同步提交即可,使用方便,操作简单,很容易就可以上手。


   2、在服务端统一控制好访问权限,利用代码的安全管理。


   3、所有的代码已服务端为准,代码一致性高。

缺点

   1、所有操作都需要通过服务端进行同步,这会导致服务器性能要求比较高。如果服务器宕机了就无法提交代码了。


   2、分支管理不灵活,svn分支是一个完整的目录,且这个目录拥有完整的实际文件,这些操作都是在服务端进行同步的,不是本地化操作,如果要删除分之,也是需要将远程的分支进行删除,这会导致大家都得同步。


   3、需要联网。如果无法连接到SVN服务器,就无法提交自己的代码,更别说还原、对比等操作了。如果在内网还好,网速比较稳定,同步相对比较快,如果是通过外网同步,有可能就需要同步很久。

CAS、GIT、SVN、CVS_第1张图片

3.总结

如果对访问控制、权限分配和代码安全性等要求比较高的,建议使用svn。

如果是分布式,多人开发,版本迭代比较快的项目,建议使用git。

4.GIT SVN CVS区别

CAS、GIT、SVN、CVS_第2张图片

你可能感兴趣的:(Java,java)