00:00
大家好,今天呢,我们一起来学习一下版本控制器SVN的使用方法,那么在介绍这个具体的内容之前呢,我们首先提出一个问题,那就是我们为什么要使用SVN啊,用了SV以后呢,它能够给我们带来哪些方面啊,它能够解决我们哪些问题,我们结合几个小故事呢来看一下,首先这个第一个故事啊,说的是有一个叫小明的开发人员啊,他负责的这个模块就快要完成的时候,他电脑突然坏了,硬盘给烧了啊,硬盘上的数据全没了。那么这个时候大家想啊,他要是数据没有其他备份的话,他这个拈就得这个重新开发了,所以这个代价呢,简直是太大是吧?哎,所以说呢,我们真正做开发的时候呢,首先要解决的一个问题啊,就是数据的备份。哎哎,这是第一个故事,我们下面再看这个第二个故事啊,第二个故事说的是一个什么意思呢?哎,有一个叫老王的一个开发人员啊,他要实现一个很复杂的一个功能,那实现很复杂的功能,呃,他也不可能说一上来就知道怎么去实现,他只能是一点一点去试,呃,他摸索了一个星期以后呢,诶终于有眉目了是吧?哎,他知道这个功能怎么实现,可是这个时候呀,他忽然间发现呢,这个代码呀,已经被改的面目全非了。
01:22
那现在他面对的这个面目全非的这个代码呢,感觉到这个非常的崩溃是吧,我现在要是有一个哆啦A梦的时光机多好,是不是我就能够回到从前了?所以说呢,我们在实际开发的时候呢,有一个代码回还原啊,这样一个需求。诶,回到我这个,呃,某一个时间点,这个代码的一个状态,就是我们第二个需求,我们再看这个第三个需求,小刚和小强呢,先后从文件服务器上呢,下载了同一个文件,诶就是说这个时候呢,这个团队啊,他有这个备份的意识了,是吧,他搞了一个文件服务器。
02:00
他俩下载了同一个文件,那小刚呢,他改的是其中的第30行,小强呢,他改的是其中的第50行。小刚呢,先提交的小小强呀,他后提交的,那么这个时候大家想想啊,作为一个呃,一般的这个文件服务器啊,他怎么能够去识别这个第30行和第50行的修改,诶这个小强呢,他第二次提交的这个文件呢,会把这个小刚呢,他第一次提交的这个文件给这个覆盖掉,哎,所以说呢,我们真正做开发的时候啊,就有这样一个协同修改啊,这样一个需求,你改你的30行,我改我的50行啊,并行不悖啊,互不干扰啊,这才是我们想要的。呃,第四个说这个老许啊,是一个项目经理,他呢有一个版本管理这样一个任务,可是他怎么管的呢?他把每一个版本都保存了一份,那么这时候大家想啊,我们真正做开发的时候呢,每一个版本啊,都是在前一个版本的基础之上呢,啊,进行了一些修改啊,增加了一些这个文件,所以说呢。
03:06
这个每一个版本呢,它都有很大一部分是重复的,对吧,那显然呢,重复的东西多了以后呢,它就会对资源呢,啊对资源呢,是一个很大程度的一个浪费,那我们有没有一个办法能够实现一个增量式的一个保存呢?什么叫增量式的保存呢?哎,我保存这个一个主体的版本以后呢,你再做修改的话,我只保存你修改的那一部分,哎,所以说呢,我们第四个需求啊,就是这个多项目,呃,多版本项目文件管理的时候呢,实现一个增量式的一个管理。哎,第五个故事呢,说的是这个老王啊,这是另外一个老王啊,呃。他遇到的是一个什么问题啊,哎,每次调bug以后呢,呃,好不容易调出来以后啊,不知道这个bug呢,是由于哪个程序员呢写的代码造成的,他手下有好几个程序员呢,问谁谁都不承认是吧?啊那你没证据人家肯定不承认了,所以说呢,哎,这就是我们另外一个需求啊,追溯这个问题,代码呢,编写人和编写时间,其实呢,咱们真正做开发的时候呢,呃找到这个人呢,并不是说呃要扣他工资或者怎么样的,诶我们是希望呢,能够找到这个,呃写代码到底当初是谁写的啊,因为谁写的这个代码呢,他肯定是更熟悉的,他是最熟悉的,你找别人再重新去看他这个代码呢,有一个熟悉的过程啊,这样会这样的话呢,非常的耽误时间。
04:35
啊,最后一个故事呢,哎说的是这个,呃有一个测试人员呀,把一个开发人员的代码呢,给呃恶意的给修改掉了,呃导致呢,这个开发人员呀,哎发现有些bug呢,不是他造成的,哎这个时候就是很冤了是吧?所以说呢,哎我们真正做开发的时候呀,我们希望这个测试小组的呃同事呢,给他分配一个只读的权限就行了,而我们这个开发人员呢,诶给他一个读写的一个权限,有了这个权限的控制以后啊,就能够避免这个问题了,哎就不会出现这个问题说呃测试员呢,把这个呃开发人员他的这个代码给恶意的改掉这个问题是吧?哎那么我们说啊以上这六点呢,就是我们在实际开发当中啊,哎所有可能会遇到的这样一些这个问题。
05:26
那么说呀,哎,使用这个SVN这个版本控制器,哎,能够完美的解决上述的这个问题吗?哎,我们说这个是肯定能够解决的是吧?哎,所以说下面呢,我们就是具体的来看一看啊呃,SV呢是怎么解决这些问题的?
我来说两句