您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页软件开发版本管理之SVN说明

软件开发版本管理之SVN说明

来源:百家汽车网
软件开发版本控制

什么是版本控制

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。

版本控制软件

依据组网方式,可分为集中式和分布式版本控制软件,主要常用版本控制软件列入如下:

SVN 其前身是CVS。 SVN 是根据 CVS 的功能为基础来设计的,它除包括了CVS的大多数特点外, 还有一些新的功能, 如文件目录可以方便的改名,基于数据库的版本库、操作速度提升、权限管理完善。 适合一般小型企业使用。

VSS 微软的版本控制工具, 仅支持Windows操作系统。 虽然简单好用,但是仅适用于团队级开发,不能胜任企业级的开发工作。

ClearCase 提供了全面的配置管理, 包括版本控制、工作空间管理、建立管理和过程控制, 而且无须软件开发者改变他们现有的环境、工具和工作方式。既支持本地局域网小组开发,也支持分布于不同地理位置的局域网协同开发, 适合大型开发组织。

GIT 是一款免费的、开源的、分布式的版本控制系统。与常用的集中式版本控制工具CVS, SVN等不同, 它采用了分布式版本库的方式, 不必服务器端软件的支持, 使源代码的发布和交流机器方便。 每一个 GIT 克隆都是一个完整的文件库, 含有全部历史记录和修订追踪能力。适合大型开发组织, 且可以在不联网的情况下快速完成本地库提交, 后续再推送到远程库。

版本控制软件组网

依据版本控制软件的工作方式,分为集中式和分布式,其物理组网方式如图 所示

Svn 操作数据流Svn web 服务器

集中式物理组网方式

Git 拉取操作网络数据返回建立本地版本库Git 操作数据流Git 推送操作同步数据Git 拉取操作网络数据返回建立本地版本库Git 托管中心服务器Git 操作数据流Git 推送操作同步数据

分布式物理组网方式

SVN工作原理

在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。有源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后开发人员可以在本地修改,再后用svn命令进行提交,由源代码库统一管理修改。

SVN常用操作

SVN 的常用操作是根据使用场景来进行分类的,开发人员主要会使用到如下使用场景

检出代码(Svn Checkout) 从服务器的源代码库中将代码下载到本地。

上传代码(Svn Add) 所有新增的文件或目标, 需要通过增加命令, 表示这是要增加到源代码库中的操作。

删除代码(Svn delete) 删除源代码库中的代码

提交操作(Svn Commit) 文件经以上几种操作后,跟库上的状态不一致, 需要提交生效。

SVN 文件操作状态转换

文件未修改 状态 修改或删除文件 提交文件 文件已修改 状态 文件无状态

SVN 规范工作步骤

当多人对同一个文件进行修改的时候, 会造成提交代码造成混乱。 比如: A 修改了文件的 150 - 500 行, B 修改了 300 – 400 行, C 修改了 200-350 行,在A 提交后, B和C 再提交时, 就会发生冲突。

可以按照如下规范避免一些问题

1. 每次需要修改文件时, 一定要先 update 该文件, 如果可能的话, 先 update , 再Get

lock , 然后修改,提交成功后, 锁会自动释放, 其他人又可通过 Get lock , 获取对该文件的独占控制和修改权。

2. 最好在合并文件时, 将本地已修改的文件先备份下, 万一冲突了, 后续还可以通过

该修改文件再次合并到库中。 3. SVN 对 文本文件支持的比较好, 可通过beyond compare 等比较工具合入文件,在多

人开发的环境中, 必须要通过比较才能保证万无一失, 因为每个人都可能只修改了代码的某些小部分。

对二进制文件支持非常不友好, 故多人在修改二进制文件时,是无法比较的, 所以在安排工作的时候, 最好每个人只维护文件的特定部分,如: A 维护文件一二小结, B 维护三四小结, C 维护五六小结等。 4. 要养成备份的习惯, 本地修改了文件在合入之前, 请先备份一下。 合入完成后, 可

删除。

5. SVN 客户端的版本必须一致, 如果不一致的话, 可能文件都合入不成功, 但此时的

状态显示可能是成功的, 并且有些库上最新的文件也不一定能下载下来。

SVN问题解决

1. 代码无法下载、无法上传

请检查SVN服务器地址, 如发现有问题, 可通过 Relocated 重新定位到一个新的服务器地址。

2. 本地的文件的状态没有显示特定的图标

一般是由于安装玩 svn 客户端没有重启而导致的,重启看看; 或者是由于工程巨大,SVN的状态还没及时更新。 3. 文件下载或上传冲突了

将冲突后的源文件备份下, 然后将冲突后的文件 Svn Revert , 再和之前冲突的文件进行比较合入。

4. 弹出验证框, 登录不了

跟SVN管理员协调,给你重新分配用户名和密码或修改密码。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务