版本管理----SVN+Apache+Ankhsvn+VS 2005+TortoiseSVN

(一)版本管理意义

  • 回溯对比--查找代码变更位置、更改人。对于原来没有、而突然出现的bug,可以重点查找变更代码,定位产生bug的代码段。
  • 代码统计--统计时间段内小组成员的代码量(工作量)。
  • 软件更新--针对以前发布的软件版本,如果使用最近代码进行重新编译发布,很可能产生运行错误(例如,使用的数据库结构有变动)。则可以从源代码库获得当时发布使用的源代码,在此基础上修订重新发布。
  • 协同开发--多成员进行并行开发时,容易产生多人同时修改一个文件,提交后易互相覆盖修改的代码,使用管理工具可以进行代码对比合并。
  • 代码安全--控制开发人员、管理人员、测试人员对源代码、设计文档等开发资料的不同访问权限,例如测试软件不能浏览代码,编码人员不能修改设计文档等。

(二)常用版本管理工具

  • 常用的代码版本管理工具有:VSS、CVS、TFS、SVN
    • VSS:
      • 基于文件夹的权限管理,开发人员有了write的权限,就有了删除文件夹的权限,一个开发人员发飙,可以让整个小组的开发代码全废掉
      • VSS 6.0版本也支持HTTP方式访问,可惜速度慢,估计是传输时没压缩吧
      • 基于文件的版本控制,无法追踪文件夹的变更
      • 文件更名后,文件的修改历史就断了,无法查询更名前的历史
      • 文件可永久删除,会造成代码丢失
    • TFS
      • 是以SQLServer数据库作为存储后台
      • 配置管理复杂、访问速度慢、运行时间长后占用空间大、备份迁移繁琐
      • VSS的一些缺点也都继承过来了(文件更名后修改历史割裂)
      • 支持代码签入审核
    • CVS,就不多说(我也未正式用过),SVN的出现就是要替代它。
    • SVN 下面详细介绍吧

    (三)SVN简介

    • SVN--Subversion简称,开源版本管理工具,有开源客户端工具与Ecllipse、VS2005等IDE集成。
    • svn服务有2种运行方式:独立服务器和借助apache网络访问。
    • 存储版本数据也有2种方式:BDB和FSFS,BDB是数据库管理方式,不推荐,因为长时间运行,会产生太多日志文件,占用磁盘空间,易产生数据库以外锁住,造成无法正常访问错误。
    • 管理二进制版本时,节约空间。仅标记、保存二进制数据变化部分。
    • 有多款插件支持,对其功能进行扩展。

     

    (四)SVN服务端安装

    • 下载地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100
    •  我选的版本为Setup-Subversion-1.6.6.msi
    • 双击进行安装,选择安装目录为:D:/Dev_Tools/Subversion/   注意:不要安装到系统盘C:,避免系统出问题,格式化系统盘是损坏代码库
    • 一路Next,完成服务端安装

     

    (五)SVN客户端安装

       5.1  TortoiseSVN

    • 是常用Windows下的SVN客户端软件,以资源管理器进行集成,安装在服务器端,可以方便建库、浏览,避免使用命令行操作源代码库;
    • 下载地址:http://tortoisesvn.net/downloads

    • 我下载的版本:TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi
    • 中文帮助:http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/
    • 一路Next安装吧(安装路径做好放在非系统盘)
    • 在服务器端一要安装一个,可以方便对库的创建、管理

       5.2  Ankhsvn

    • 在VS中管理源代码的Subversion的插件
    • 下载地址:http://ankhsvn.open.collab.net/servlets/ProjectProcess;jsessionid=F000341F5B3BCA49AC46DB550694E000?pageID=3794
    • 我下载的版本: AnkhSvn-2.1.7756.392.msi
    • 一路Next安装吧,没啥可设置的

     

    (六)版本库管理

    • 创建版本库   在服务器端,需要创建版本库的文件夹内点右键,在右键菜单中 TortoiseSVN-->Create repository here
    • 导入源代码方式 1  ----  借助TortoiseSVN
      • 找到源代码目录,点右键,在右键菜单中  TortoiseSVN-->Import...  弹出对话框
      • URL of  Repository中填写为 file:///D:/Dev_Tools/Subversion/svnrepos/FGIS,也就是创建库的文件目录,最后点击 【OK】按钮,导入数据
      • 注意:   导入数据目录下源代码无关文件(源代码编译时的中间文件)都删除,然后导入。例如:*.ncb、*.lib等
    • 导入源代码方式 2  ----  借助VS 2005的插件AnkSVN
      • 打开VS2005,进入菜单   工具-->选项-->Source Control,修改为AnkhSVN
      • 打开一个解决方案
      • 在解决方案上点击右键,进入菜单  Add solution to Subversion,弹出对话框
      • 填写项目名称,在版本库中创建新项目

    (七)版本库访问

    • 文件方式访问
      • 在资源管理器中点右键,进入菜单 打开TortoiseSVN-->repo-browser,弹出版本库浏览对话框
      • 在URL中填写路径: 类似:file:///D:/Dev_Tools/Subversion/svnrepos/FGIS
      • 回车确认,对话框中列出此版本库中所有文件
    • SVN服务方式访问
      • 启动SVN服务
        • 启动服务方式一(人工启动) 
          • 打开CMD窗口
          •  输入 svnserve.exe --root D:/Dev_Tools/Subversion/svnrepos --daemon,回车确认
          •  注意 1  --root D:/DevTools/Subversion/svnrepos 表示版本库的根路径,其下可以包含多个版本库;
          •  注意 2  --daemon 使其以守护进程方式运行,用户不要关闭命令行界面,否则服务程序关闭
        • 启动服务方式二(以windows服务方式自动启动)
          • 打开CMD窗口
          • sc create svnserve binPath= "D:/DevTools/Subversion/bin/svnserve.exe --service --root D:/DevTools/Subversion/svnrepos" displayname= "SvnReposserver" depend= Tcpip start= auto
            • sc是windows自带的服务配置程序
            • binPath表示svnserve可执行文件的安装路径
              • --service参数表示以windows服务的形式运行
              • --root指明svn repository的位置
              • service参数与root参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中
            • displayname表示在windows服务列表中显示的名字
            • depend =Tcpip 表示svnserve服务的运行需要tcpip服务
            • start=auto表示开机后自动运行
          • 重启计算机,svnserve将以windows服务的方式自动启动,如果未能正常启动,手工设置服务为自动启动,并启动它。如果还是无法启动,检查一下路径是否正确,tcpip是否启动??(winxp系统,有时未必安装tcpip服务)
      • 版本库浏览
        • 在资源管理器中点右键,进入菜单 打开TortoiseSVN-->repo-browser,弹出版本库浏览对话框
        • 在URL中填写路径: 类似:svn://localhost/FGIS
          • SVN:后面是双线,与FILE方式访问的三线不同
          • localhost出填写主机名或IP地址,也就是说,是以IP/TCP协议方式访问,可以再网络中访问其他机器的版本库
          • FGIS,是相对路径,是在开启服务时设置的根路径下的目录
    • SVN服务方式访问的权限设置
      • 编辑版本库目录下的conf/authz、conf/passwd、conf/svnserve.conf三个文件,可以控制用户对版本库的访问
      • conf/svnserve.conf   文件修改
        [general]
        anon-access = none                        去除此行前的#,修改为=none,表示无法匿名访问版本库
        auth-access = write                        去除此行前的#,表示使用授权方式访问
        password-db = passwd                     去除此行前的#,表示当前路径下的passwd文件中描述了用户名、密码
        authz-db = authz                             去除此行前的#,表示当前路径下的authz文件中描述了目录方式控制用户访问版本的规则
      • password-db = passwd  用户/密码文件修改
        以如下方式添加用户名和密码:
        [users]
        emma = emma        #测试人员  emma
        eric = eric               #开发人员  eric
        carel = carel           #开发人员  carel
        lee = lee                #管理人员  lee
      • authz  授权规则文件           将用户划分为组,将版本库的目录、子目录的访问权限分配给组
        [groups]
        admin_group = lee                        管理组成员
        dev_group = eric,carel                  开发组成员
        test_group = emma                      测试组成员
        [FGIS:/trunk]
        @test_group = r                           测试小组对版本库trunk目录有只读权限
        @admin_group = rw                       管理小组对版本库trunk目录有只读权限
        @dev_group = rw                         开发小组对版本库trunk目录有只读权限
      • 重新启动SVN服务
      • 以TortoiseSVN方式浏览,或者在VS2005中以AnkSVN插件打开,都要求输入用户名、密码验证

     

    (八)SVN与Apache集成

    评论 5
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值