本文主要是介绍SVN学习(一)-基础理论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用了两天的时间把SVN学习完,以博客的方式总结一下;
整个SVN系列打算以过程的方式,总结成三篇博客,分别为"基础理论"、"下载与安装"、跟"常用操作",整个系列就全面了,从了解认识到下载使用以及常用的操作,关于SVN这一块对于读者以及对于自己也就有价值了。
这篇博客主要说说SVN的基础理论,用于对SVN有一个全面的了解。
一,SVN(Subvertion)是什么?
有一个简单但不十分精确比喻:SVN = 版本控制 + 备份服务器.
简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容,并且自动的赋予每次的变更一个版本。
个人理解,它就像一个云端存储区,放进去的东西丢不了(当然没有绝对的安全,相比而言SVN已经非常好了)不管是个人还是团队很多人,只要对存上去的东西有过更改他就会保存一个版本,让你有迹可循,随时想用哪个阶段哪个版本的直接下载就可以,并且速度也很快。另外还有很多其他功能,主要是针对团队开发而设计的。
二,为什么要使用SVN(Subvertion)
1,备份工作档案是十分重要的。您永远不知道计算机上的硬盘何时会坏掉。根据经验法则再加上摩菲定理,坏事情往往都发生在最重要的时刻。例如,要release东西的前一刻,硬盘完全坏掉,无法修复。所以,常常备份工作数据是非常重要的。大部分公司的server都会有专门的备份机制,甚至是异地备援。绝对比放在自己的计算机里头,或是随身碟上面来的安全。
SVN Repository可以是自己计算机上的一个目录,或者是随身碟(不建议这样用)。当然也可以是公司的服务器。
2,版本控管非常重要,您无法保证手头上最新版本永远都是对的。很多时候,在经过数天努力工作后,您才发现走错方向。需要将所有的修改回复到数天前版本。没有几个人能够完全记住自己修改过什么东西。如果没有做好版本控管,那么,最差的状况就是要全部重来。
SVN有很棒的版本控管机制。所有上传的版本都会帮您记录下来。日后您可以随时取得某一个时刻的版本。而且,也有版本分支及合并等好用的功能。
3,伙伴间的数据同步也是非常重要的。很多时候,除了您个人外,还有其它的伙伴也需要您的档案。怎么把最新的档案提供给伙伴呢?用e-mail?根据经验,用e-mail是一个很差的办法。到了最后,根本就不知道哪一封e-mail才是新的。因为可能您最新的e-mail已经被当成垃圾信给丢了。别忘了,现在很多e-mail软件都有anti-spam的功能,说不定这些信件都被当成广告信给处理掉了。而且,您也应该知道一般档案如果放在e-mail内,档案大小会变得比较大(通常是原来的4/3倍以上)。如果每天更新一次,恐怕几天没收信的话,信箱就爆了!
SVN可以让不同的开发者存取同样的档案,并且利用SVN Server作为档案同步的机制。也就是说,您有档案更新时,无须将档案寄给您的开发成员。只需要告诉他新的版本已经在SVN Server上面,请他自己去SVN Server上面就可以取得最新版本。而且,SVN Server也可以做到当您上传新版本后,自动发信给相关的成员。
4,如果没有一个好的办法,备份不同版本是很耗费硬盘空间的。例如:您有一个总共10MB的目录,使用单纯的档案备份。如果有10个版本就会变成100MB。20个版本就有200MB。如果,不想备份这么多版本,势必就是要减少备份的次数。拉长备份周期将会导致数据遗失的危险性增高。把旧的不需要的备份删除?根据经验,只要时间一拉长,您跟本就不知道一个月以前的版本是重要或者是不重要。
SVN的存放档案方式是采用差异备份的方式。也就是说,他只会备份有不同的地方。所以很省硬盘空间。此外,他也可以针对所谓的非文字文件进行差异备份。
三,SVN(Subvertion)的优点以及缺点
优点:
1.性能提高。SVN不管文件是文本还是二进制类型,在内部都是以二进制差异比较算法来表示文件的更新部分。这表示所有的文件在文件库中都是以差异的形式储存。而且在网络上传输的,都是较小的文件差异部分。这也使创建分支、打标签、合并等操作可以非常快地完成.
2.对目录的组织的管理更加方便。SVN不光对文件做版本跟踪,也会对目录做版本跟踪。因此可以根据项目的需要,对目录结构随时进行修改,可以把现有的目录移动到新的地方。
3.保证提交操作的完整性。SVN对提交操作的处理方式类似数据库的事务处理,要么全部成功,要么全部无效,保证了原子性。
缺点:
关于缺点这一块目前还没有认识到,或许是因为还没有真正的在实践中用过SVN的原因,目前也只是用于学习而做过部分常用的操作,(不过肯定有缺点,了解到了再过来补充)。毕竟根本性的完美是根本不存在的。
关于SVN的基础理论到这里也就结束了,当然,后期在使用中如果有新的变动会及时过来更新的。另外如果读者您有不一样的看法或者建议非常欢迎一起交流学习。
这篇关于SVN学习(一)-基础理论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!