从传统的版本管理看SVN
2017-08-07 21:31
645 查看
引言
版本控制工具估计大家都不陌生,只要稍微做过一两个项目的就会用到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地址。接下来,我们就可以将服务器端的代码文件拉下来了。
相关文章推荐
- 持续集成篇之SVN版本管理系统的安装(CentOS+Subversion+Apache+Jsvnadmin)
- Xcode下svn版本管理
- [svn] linux命令——svn基础-版本管理
- 【SVN版本管理】
- 5版本管理工具svn
- 开发中常用的版本管理操作(svn和git)
- 在Mac OS X下架设和使用SVN版本管理环境
- 用subversion(SVN)进行版本管理 (一)
- 使用versions进行SVN的版本管理,结果发现所有的.a文件都上传不上去
- IOS 程序的版本管理(基于SVN)
- iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )
- SVN与GIT协作作为版本管理
- svn版本库管理
- [版本管理]有惊无险修复svn服务器Invalid filesystem revision number问题
- AS 中配置强大的版本管理系统(Git、SVN、等)
- android 用svn管理的版本编译出来有问题
- SVN管理多个项目版本库 (windows,linux 通用)
- 使用SVN进行项目版本管理
- 持续集成篇_03_svn版本管理系统的使用(centos+subversion+apache+jsvnadmin+tortoisesvn)
- 对CVS,SVN等软件版本管理中Tag,branch,merge的一点理解