简介
近期受公司委托做一个SVN的培训工作,所以写一篇博客来讲解吧。在介绍SVN之前,先谈一谈配置管理。配置管理(Configuration Management,CM)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。其概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标准“AFSCM375-1,CM During the Development & Acquisition Phases”。配置管理通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。配置管理的主要功能:
1、版本控制:能够简单地、明确地重现系统的任何一个历史版本
2、变更控制:跟踪每一个变更的创建者、时间和原因
3、协同管理:因开发和维护的原因,要求能够实现开发人员能够同时在同一模块上工作,同一文件被不同人员修改,即使跨区域开发也互不干扰,协同工作,而又不失去控制
4、建立管理:基于软件存储库的版本控制功能,实现建立的过程的自动化
5、过程控制:贯彻实施开发规范,曝光访问权限控制、开发规规则的实施
6、文件共享:提供良好的存储和方位机制,开发人员可以共享资源
配置管理中一个入门级的工具就是版本控制工具,例如CVS、VSS、SVN、Git等。SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。SVN分为客户端软件和服务端软件,服务端软件通常安装在公司服务器中,主要是职责是创建项目仓库、创建用户、权限分配。客户端软件是安装在开发者电脑中,主要功能有项目迁出、文件提交、冲突解决、文件对比、历史版本查询等。SVN客户端工具有很多种,比如RapidSVN、SmartSVN、Tortoise SVN等,Windows平台公认的最好用的是Tortoise SVN,所以本章节介绍Tortoise SVN的安装及使用。
一、安装篇
访问Tortoise SVN官方网站,通过该网站下载Tortoise SVN,默认语言是英语,如果不习惯,可下载中文语言包。
如果安装过程中,弹出下图所示的消息框,说明电脑没有安装最新的VC++库,可到微软官方网站下载对应的版本。
安装成功后,右键会出现“Tortoise SVN”菜单。
二、基础操作篇
在操作之前,首先熟悉下常见的图标
浏览指的是在本地计算机浏览SVN服务器的内容,这是一个非常实用的功能,无需Update就能在线读取最新的文件信息。右键TortoiseSVN->Repo-browser,输入正确的URL路径后,再输入正确的用户名和密码,就可从SVN服务器中浏览文件。也可以点击右上角的“Head”按钮,浏览任意版本的内容。
检出的目的是为了将服务器的文件同步到本地计算机,并保持关联。检出到计算机后,会多出一个.svn的隐藏文件夹,SVN客户端通过该文件夹存储的数据与SVN服务器保持同步。
新建一个文件(夹)后,先右键TortoiseSVN->Add,然后右键SVN Commit。右键TortoiseSVN->Add并不会直接提交到服务器,只是做一个标记,再下一次Commit的时候把新增的内容提交到服务器。当然了,也可以省略第一步,在Commit的时候再选中新增的文件,但是并不推荐这方法,因为很容易遗漏。
删除了新增是对应的,也可以右键TortoiseSVN->Delete,然后Commit。也可以直接删除文件,然后在Commit时选中已经被删除的文件。
修改是最经常使用的功能,修改完文件后,直接右键SVN Commit即可。
在使用过程中,我们可以提交单独的一个文件,也可以提交整个文件夹。如果提交单个文件时,选中该文件,然后右键SVN Commit即可。如果提交整个文件夹,在该文件空白处,或者在父目录下选中该文件夹,然后右键SVN Commit。建议定期进行提交操作,养成每天下班前提交一次的好习惯。
更新指的是将服务器的文件更新到本地计算机,尤其是多人协同开发的时候,在开始工作前一定要进行Update,否则我们会花大量的时间去处理冲突。代码文件还好去解决冲突,Word、Excel等非文本格式的文件处理起来就比较麻烦。执行Update操作不会覆盖本地的文件,所以不需要担心Update会将刚刚修改的内容抹掉。如果服务器的文件与本地文件有冲突,会自动生成两个后缀为R*的文件。
对比功能是个非常实用的功能,选中一个文件,右键TortoiseSVN->Diff和服务器最新版本对比;右键TortoiseSVN->Diff with previous version和服务器次新版本对比;右键Show log,选中任意两个版本对比。比如服务器最新版本是5,选择Diff就是和版本5进行比较,选择Diff with previous version是和版本4进行比较。对比功能对纯文本格式比较友好,对于非文本格式的文件,可以搜索下对应的对比插件。
误删除文件,当前文件夹下右键SVN Update即可恢复。修改了文件,想恢复到之前的版本,右键TortoiseSVN->Revert即可。该方法只能恢复到已提交到服务器的最新版本,所以建议定期提交。新增了文件,右键也Add了,但还未Commit,此刻想删除该文件,请先右键TortoiseSVN->Undo Add,再删除。
在开发过程中,我们应当避免同一时间段不同用户修改同一份文件,但是仍然无法避免这种情况的发生。发生冲突后会新增两个文件,记录了两个版本冲突的内容。右键TortoiseSVN->Edit Conflicts,在Merged栏中输入冲突解决后的内容,再点击“Mark as resolved”,冲突解决后,两个新增的文件会被自动删除。
文章评论