SVN操作概述

一、SVN定义
        SVN(Subversion)是近年来崛起的 版本管理工具。目前,绝大多数的 开源软件都使用svn作为代码管理版本软件。
 
 二、SVN分类:如下图

 

 
        SVN是开源的版本控制系统,它包括客户端和服务器。图中的蓝色字体表示服务端和客户端常用的版本。
 
         1)服务端版本又分为:Subversion版本和VisualSVN Serve版本。
              对于新手而言,个人比较赞同用VisualSVN Server,它是具备图形界面的SVN Server,使用起来比较方便。
 
         为什么要用VisualSVN Server ,而不用Subversion?
         因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。(此段引自《 http://baike.baidu.com/view/9636511.htm 》)
 
 
      2) 客户端工具有VisualSVN和TortoiseSVN.
       VisualSVN是收费的; TortoiseSVN是免费的,它可以代替VisualSVN。
    
 
        安装SVN时,先安装好服务端,再安客户端。 如何验证SVN服务器是否安装好?

     开启命令行,输入svn,如果出现“使用‘svn help’得到用法”,说明SVN服务器已装好。

        

 

 

三、SVN服务器搭建:

         1)安装好SVN后,第一步就是要建立核心仓库(Repository):
 
        在Windows下,要建立仓库。这个仓库对应我们Windows操作系统上的,其实就是一个目录。
        比如,如果我想把这个仓库建立在D盘的Share目录下.
 
        用svnadmin命令,后面敲help可以得到它的用法。
        要建库用的是Create子命令。
        
 
       这样:在D盘的Share目录下建立一个目录svnrepo

 

 
        svnrepo目录文件里面会有4个目录文件:
        cong,里面装的全是配置文件。
        db:是存储版本的地方。
        hooks:做操作的时候,它的上面打的一些钩子,即回调函数。
        locks:在某些文件或某些分支上加锁的时候要用到的文件。Format:版本;REDEME:读一下。
 
         2)权限设置
             打开:svnrepo→conf→svnserver.conf 。
             svnserver.conf这个文件控制着SVN的一些常用设置。
            
      在你的项目里,有几个人,你就设置几个用户,并给他们设置不同的密码。这样用户就添加完了。
 
3)启动服务器
       启动服务器的方式有2种:
        3.1)用命令svnserver -d -r + "目录名称"
      

-d:后台运行

-r:以超级管理员或超级用户的方式去运行。

 
        目录名称:可以写全路径,如果正好在当前服务器下,也可以写相对路径。
        
       
        
        这个窗口不能关掉,这个窗口关掉了,服务器就关掉了。
         
         3.2)SVN服务器的第二种运行方式:apache http
               在真正的开源项目做开发的时候,是和apache服务器结合在一起的,一般要用http的方式来去访问的。
 
        上面写的搭建SVN服务端的内容可以总结为三点: a.建库    b.设置库权限     c.库启动。
       用图表示如下。
        
 
四、 SVN的工作流程
 

 

 
          集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:
开始新一天的工作:
        1、从服务器下载项目组最新代码。
        2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
        3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。

        缺点

          1、服务器压力太大,数据库容量暴增。
          2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
          3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般 集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。

        优点

        1、管理方便,逻辑明确,符合一般人思维习惯。
        2、易于管理,集中式服务器更能保证安全性。
        3、代码一致性非常高。
        4、适合开发人数不多的项目开发。
        5、大部分 软件配置管理的大学教材都是使用svn和 vss
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值