从传统的版本管理看SVN

来源:互联网 发布:马蓉面相 知乎 编辑:程序博客网 时间:2024/05/21 10:29

引言

        版本控制工具估计大家都不陌生,只要稍微做过一两个项目的就会用到svn或者其他的版本控制工具。下面从版本管理工具的起源,发展,以及种类,代表作品等等,好让大家有一个直观的了解


版本管理工具概念


        相信写过论文的同学都有这样的经理,文章改了一遍又一遍,但为了区分只好不断的重命名,比如说“毕业论文初稿”、“毕业论文第一版”、“毕业论文第二版”、“毕业论文第三版”……毕业论文最终版”、“毕业论文最终不改版”……这就是传统的版本管理,因为它做到了这么几点:

          1、保存了每一个版本

          2、有一个最新版本

          3、可以回退到任何一个版本(因为每个文件都没有被删除)

但是缺点也显而易见:

         1.虽然我们保存了每个版本,但是两个版本之间可能只有一点点的区别,这样无形当中浪费了磁盘资源

         2.每个版本没有标注更改了那些内容(必须手动打开看才能知道)

         3.文件多不方便管理。

         4.其他

         这只是简单的word文档,简单的论文,再多也多不了多少,但当我们在编写代码的时候每天都会有很多版本出现,如果我们每次都新建一个文件重新来写的话那我们岂不是要疯掉了,于是,“版本管理工具”的概念应运而生。


版本管理的演变


1、文件管理阶段(严格意义上说这个不算)


    就是上面我们说的这种情况,见下图



2、集中式管理阶段


    典型的就是cvs和svn。cvs的全称是Concurrent Version System(协作版本系统),它的第一个版本出现的时间是1990年,是C语言开放源代码的。官网:http://www.nongnu.org/cvs/,svn的全称是subversion。svn比cvs更棒,初始版本是2000年,前段时间(2014年5月)又出了一个稳定版本,一直在更新壮大,它的出现就是用于取代cvs的。



3、分布式管理阶段


    出现在2005年,它的出现很好的解决了linux系统维护的工作。同样是由我们可爱的Linus Torvalds编写的,据说只花了两周。



SVN服务端的部署以及签出操作


    在介绍SVN的使用之前先介绍几个相关的概念

    1.仓库(repository),就是服务器端的数据。

    2.签出(checkout):英语写成check out,意思就是从服务器拉取数据。

    3.提交(commit):svn中commit是直接将数据提交到服务器。所以,如果没有网络的话svn就commit不成功,这个尤其注意。

    4.更新(update):这个是svn中的概念,用于将服务器端的数据更新到本地。

    介绍完概念之后,下面来给大家介绍SVN服务端的部署以及签出操作

    按照我们之前的概念,先要部署服务器。我们先下载一下SVN,可以进入官网去下载。服务器的部署还是比较简单的,这里就不做过多介绍了。考虑到使用svn的一般都是windows用户,我们就在windows7下部署svn服务器吧这里笔者选择的是VisualSVN这款软件,下载地址请点击这里,运行后我们看到下图这样的画面


    

    现在我上面已经运行了一个仓库,所以我们看到最后一项Repositories是有一个的,如果你本地没有,就需要创建了。创建成功我们可以看到如下图所示效果


   


    双击我们建好的仓库,可以看到http地址,如下图




    然后我们到浏览器中输入一下,看到如下图所示效果,就说明成功了




    当然,如果你想在远程连接这台服务器的话,需要将相对路径改为ip地址。接下来,我们就可以将服务器端的代码文件拉下来了。