前言:
cvs svn git三者区别
1、cvs每次提交代码时,假设出现异常时导致中断,那么就会存在有一部分代码被提交了,有一部分没提交,svn要么全部成功,要么全部失败,原子性更强。
2、cvs设计的初衷就是为了存储文本文件的,所以在其他类型文件例如图片,文档文件等会不是很支持或者说是上传时效率慢。
3、cvs创建分支的时候,当项目越大,创建消耗的资源是成正比的,而svn会快很多。
4、git在合并分支的时候可以非常简单和方便,不会像SVN一样当有多个分支时,必须到每个一个分支的目录上merge。
5、git是基于分布式的,这样对于管理大型的项目系统时它的性能会比svn高。
分布式举例:假设一个盒子里面有10个乒乓球,每个乒乓球上有一个编号,1-10,假设现在你要找9号乒乓球,那么你就得一个个翻,如果你用五个盒子去装,
你把9和10号球放在了5号盒子里面,那么此时你去找9号球时,就直接到5号盒子里面找,定位准确,效率高。
1、安装svn环境
出现如下信息安装成功
2、创建仓库
首先创建文件夹
mkdir -p /svn/repos
然后创建仓库
svnadmin create /svn/repos/
3、修改配置文件
首先修改svnserve.conf,将下面几处配置打开
然后新增用户
然后将用户分组,且进行目录权限控制
所以此时wangjing、sunjie两个人分在test01组中,且01组对主干(trunk)和标记(tags)下面的所有目录都有读写权限
而组test02只能访问cesi目录下的内容
启动svn:
svnserve -d -r /svn/repos/
4、主干分支管理
在svn中会有主干分支的概念,我们公司主干上是不开发代码的,但是其他很多公司主干上也开发代码,分支就是线上版本,具体怎么去用根据公司自身情况来吧,主干提供分支给下个版本进行开发,例如现在APP刚上线版本为1.0,此时就应该有两个分支为1.0和1.1,分支是从主干上通过svn客户端操作出来的,如下:
点击后出现如下,选择你要去分支到哪里目录,一般都是在branchs目录下面,
这样,我们建立分支1.0(线上环境维护和修改小bug)和1.1(下个版本新功能开发)后,在我们开发环境中就根据自身需求去down不同版本进行开发。
分支合并到主干
注意:每天下班前需要将分支上开发的代码合并到主干上,因为主干上后续不进行开发,合并分支1.0和1.1的代码的目的就是为了后期从主干可以直接分一个1.2出来,这样可以保证代码是最新的,我们必须在主干上选择合并,如下
选择merge选择,根据默认提示下一步,如下
出现此界面是,注意两点
1、上面图中地址必须是分支的地址,因为你是想把分支上的内容拿到主干中
2、最好去通过点击show log去选中对应你每天提交的记录,
选中你自己提交的记录,然后点击确定后进行合并操作。
网友评论