毕业论文
您现在的位置: 版本控制 >> 版本控制资源 >> 正文 >> 正文

春秋战国Git与大秦王朝Svn的

来源:版本控制 时间:2023/1/12
白癜风吃什么药呢 http://pf.39.net/bdfyy/qsnbdf/140805/4440900.html

关于Git的概念相信很多人都有所了解,但又不太了解。单从技术的角度去分析对于理解能力不太强的同学显得苍白无力。于是乎我试着用举例子的方式去还原繁杂的技术概念。

众所周知,秦始皇是我国历史上第一位实现全国大一统的最高领导者,称之为始皇帝。在秦朝之前是各诸侯国所僵持的春秋战国时期,周天子是传说中的傀儡Boss,面对虎视眈眈的各诸侯国,终于有一天阿政控住不住他自己了,决定带领秦国干上一番大事业,这才有了后面那么多惊天地泣鬼神的故事。(本文中的历史真实性有待考证,笔者只是按照需要举例子~)

1.Git分布式,Svn集中式:

Git的用户如同是春秋战国时期的各个诸侯国,每个国家有属于自己的土地(Git的本地版本库),每个国家也就有各自的商品(需要版本控制的代码或文件)。而所有的诸侯国需要定期向周天子(Git的远程版本库)汇报国家的发展情况,并且把国家新添加的商品发给周天子让他做统计,然后每次从周天子那里获取一些自己国家没有的商品,这样保证国家之间在没有交互(Git不需要联网)的情况下所拥有的商品都是一样的,只是每次向周天子汇报的时候需要派出使者去沟通(向远程版本库同步才需要联网)。

Svn的用户如同是秦始皇统治时期各个郡县,每个郡县是不允许有自己的土地(本地版本库),它们拥有的一切都归大秦王朝(Svn仓库),郡县生产的所有商品(需要版本控制的代码或文件)都统一交给国家保管。在每次生产新的商品前先从国家获取现在已有的商品。这样做的好处是保证商品的规范性、安全性,国家规定何种产品如何生产,包括使用什么原材料,使用何种工艺,而且生产的商品必须是指定的秦朝郡县才能交给国家(Svn需要局域网)。

这里重点强调的是国家的概念,只有国家才会拥有自己的商品仓库,主要是说明分布式与集中式的区别。

2.Git是把内容按照元数据方式存储,而Svn是按照文件:

先来理解概念:

元数据(MetaData)就是是描述其它数据的数据

快照(Snapshot):关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。

春秋时期各诸侯国统计自己商品内容是按照元数据的形式,将所有商品不论是否改变都以快照形式登记在册,这样在诸侯国的仓库记录中就会有所有时间段历史记录。

大秦王朝就不一样了,泱泱大国那么多事,怎么可能所有时间段都登记在册,只是将有过“增删改”的商品记录即可。

3.Git和Svn对网络的需求:

Git是目前为止最好用的版本控制系统,与其说最好用不如说最适合当下的项目需要。如今互联网项目如雨后春笋,发展迅猛,当初Svn之类的集中式版本控制系统需要局域网使用就变得很鸡肋,不同项目组开发同一个项目就需要使用vpn进行代码的交互。而Git是分布式版本控制系统,可以有各自的版本库不需要频繁交互,完美解决了这个问题。

可以想象成一个国家是一个网段,春秋时期各诸侯国相当于在不同网段,需要周天子这个互联网才能通讯,但是毫不影响商品的生产。大秦王朝是自己独有的网段,各郡县只有在自己国家才能通讯,假如你再非秦地界生产了商品是没办法传给你们嬴老大的。

4.Git和Svn对分支的使用:

Svn是一个完整的目录,一个用户若开辟新的分支当前所有Svn用户都会有该分支,Git有本地仓库的概念,假如新建了分支用于测试只要不提交到远程仓库,这个分支只有本地仓库才会拥有。

春秋时期,一个百姓生产了一个转基因商品,没敢和其他商品一起交给诸侯国,自己新建了分支交给诸侯国,国家也知道这个技术不成熟,所以就没有告诉周天子,恰巧这个转基因商品有毒,导致诸侯国百姓中毒身亡,该诸侯国亡矣,周天子不小心笑出了声,告诉其他诸侯国要小心这种转基因,并且给该诸侯国派去了新的劳动力及现有商品。

大秦王朝,一个郡县生产了一个转基因商品,没敢和其他商品一起交给诸侯国,自己新建了分支交给秦王朝,结果第二天全国的郡县都有了这个分支的转基因商品,关键这个商品有毒,导致秦百姓中毒身亡,秦朝亡矣。(千万别当真~)

5.Git的内容的完成性优于Svn:

Git在

转载请注明:http://www.0431gb208.com/sjslczl/3028.html