第 14 章 版本管理
DESCRIPTION
第 14 章 版本管理. 版本管理也就是对软件产品的管理,主要内容就是使用版本管理软件,对软件产品开发过程中,一个或多个文件的修订过程进行跟踪,当这些文件组成的产品可以稳定运行时,就称为一个版本。版本管理不仅可以提高软件产品的稳定性,也可以优化开发人员的工作量。本章主要介绍版本管砣砑 SVN 的安装与使用,以及如何在 Eclipse 中使用 SVN 。. 14.1 SVN 下载与安装. - PowerPoint PPT PresentationTRANSCRIPT
第 14 章 版本管理• 版本管理也就是对软件产品的管理,主要内容就是使用版本管理软件,对软件产品开发过程中,一个或多个文件的修订过程进行跟踪,当这些文件组成的产品可以稳定运行时,就称为一个版本。版本管理不仅可以提高软件产品的稳定性,也可以优化开发人员的工作量。本章主要介绍版本管砣砑 SVN 的安装与使用,以及如何在 Eclipse 中使用 SVN 。
14.1 SVN 下载与安装• 版本管理软件有很多,例如 VSS 、 PVCS 、 CVS等,本章将主要介绍一种更加强大的版本管理软件 SubVersion ,即 SVN 。 SVN 主要是用来替换开源社区中,最流行的版本管理软件 CVS 。
14.1.1 SVN 下载与安装• SVN 替换 CVS 的原因,不仅仅是解决了 CVS 系统的一些不足,同时实现了更好的版本解决方案。下面列出 SVN 的一些特性,供读者参考。• 可通过 APACHE 服务器,提供 WebDAV/DeltaV协议的支持。• 可脱离 APACHE 服务器,独立运行。• 软量级的分支与标签操作。• 加强了对于二进制文件的支持。
14.1.2 SVN 配置与运行• SVN 支持通过命令行状态,进行软件版本管理,本小节将按步骤介绍,如何在命令行状态下使用SVN 。
14.2 SVN 命令行客户端• 在安装及配置完 SVN 后,就可以通过客户端来管理项目了。 SVN 在安装时,已经提供了客户端命令 svn , svn 是一个基于命令行的工具,通过 svn 可以完成大部分的项目管理操作,本节将介绍如何使用 svn 完成管理版本的各种操作。
14.2.1 导入项目• 要把一个项目导入到 SVN 资源库中,可以使用以下命令实现:• svn import 项目路径 SVN 资源库路径及名称 -m " 项目说明,必选 " --username 项目资源库管理者用户名 --password 项目资源库管理者密码• svn import :用于把当前项目,导入到 SVN 资源库中。• 项目路径:要导入到资源库中的项目,可以使用绝对路径,也可以使用相对路径。• SVN 资源库路径及名称:其格式为 svn://localhost/learn ,其中 learn 是使用 svnadmin 创建的资源库。• -m " 项目说明,必选 " :用于导入项目时,项目的说明文字,此项必不可少。• --username 项目资源库管理者用户名:用于指定访问资源库的用户的用户名,此用户名在配置资源库是,在 passwd 文件中添加的。• --password 项目资源库管理者密码:用于指定访问资源库的用户的密码,此密码在配置资源库时,在 passwd 文件中设置的。
14.2.2 导出项目• 要把一个项目从 SVN 资源库中导出,可以使用以下命令实现:• svn checkout SVN 资源库路径及名称 --username 项目资源库管理者用户名 --password 项目资源库管理者密码• svn checkout :用于把 SVN 资源库中的项目,导出到当前文件夹。• SVN 资源库路径及名称:其格式为 svn://localhost/learn 。• --username 项目资源库管理者用户名:用于指定访问资源库的用户的用户名。• --password 项目资源库管理者密码:用于指定访问资源库的用户的密码。
14.2.3 更新本地项目• SVN 的更新本地项目功能,主要用于团队工作时使用。当团队其他成员对项目做出更新并提交后,可以使用 svn update 命令,来取得这些更新的文件到当前编辑的项目。 svn update 命令没有其他参数,只接在命令运行窗口中输入 svn update 并回车,就可以把当前编辑的项目更新为最新修改的版本。
14.2.4 查看项目状态• SVN 的查看项目状态的命令是 svn status ,其主要用于列出当前编辑的项目中,所以相关的修改,而不用访问资源库。运行 svn status 命令时,当前目录必须是一个有效的副本。可以通过查看图,来了解 svn status 运行的情况。
14.2.5 项目对比• 使用 svn diff命令,可以根据当前编辑版本中的元数据,与已经修改的版本进行比较,并列出已经修改的项目,以及修改的具体内容。在有效的编辑版本目录下,输入 svn diff,运行结果如图所示。
14.2.6 恢复项目• 使用 svn revert 命令,可以从资源库中恢复指定的文件到当前编辑版本中。下面演示其使用方法。在有效的编辑版本目录下,输入 svn recert readme.txt ,运行结果如图所示。
14.2.7 项目提交• 在对当前修改版本进行修改、编辑、删除、添加等操作后,最后的工作就是把这些文件的新状态提交到资源库中,以便于下次修改项目时,调用编辑好的内容。• SVN 用于进行项目提交的是 svn commit 命令,其使用方法如下示:• svn commit 要提交的文件或目录 -m "注释 " --username 用户名 -password 密码• svn commit :用于提交指定的文件或目录到资源库中。• 要提交的文件或目录:用于指定要提交到资源库中的文件或目录。• -m "注释 " :用于注释提交的文件或目录。• 在有效的编程版本目录下,运行以下命令:• svn commit .
14.3 SVN 可视化管理界面• SVN 对于版本管理来说,提供的功能足够强大,但是其命令行式的客户端管理方式,并不是很友好,解决这个问题,可以使用第三方的,基于可视化管理界面的 SVN 客户端工具来解决。本节将使用 SVN 客户端管理工具 TortoiseSVN ,实现版本管理过程中各种操作。
14.3.1 TortoiseSVN 下载与安装• TortoiseSVN 是 Subversion 版本管理系统的可视化客户端管理软件。通过可视的管理界面,实现 SVN 各种版本管理的操作。 TortoiseSVN 是一款开源软件,可以从其官方网站上免费进行下载,其官方网址的网址是: http://tortoisesvn.net/ 。• TortoiseSVN 分为 32位与 64位两种版本,本节使用的 TortoiseSVN 是 32位的 windows 安装版本,其下载地址是: http://nchc.dl.sourceforge.net/sourceforge/tortoisesvn/TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi 。
14.3.2 创建项目仓库• TortoiseSVN 安装完成后,主要功能都集成在右键菜单中。下面演示使用 TortmiseSVN 创建项目仓库的方面。
14.3.3 导出项目• 本小节将分步骤介绍,如何使用 TortoiseSVN ,导出资源库中已经存在的项目。
14.3.4 更新本地项目• 使用 TortoiseSVN 导入的文件夹,在资源管理器中显示时,其文件夹的图标如图 14-33 中的文件夹图标所示。• 在导出项目的文件夹上单击右键,在弹出的菜单中选择“ SVN Update”菜单项,以实现与 svn update 命令相同的功能。
14.3.5 项目提交• 在修改完当前项目后,可以使用 TortoiseSVN 把修改的内容,提交到资源库中。在需要提交的文件夹或文件上单击右键,在弹出的菜单中选择“ SVN Commit”菜单项,以实现与 svn commit命令相同的功能。执行完 SVN Commit 命令后, TortoiseSVN 将显示项目提交窗口,如图所示。
14.4 SVN 与开发工具• 不管使用命令行客户端,还是使用 TortoiseSVN ,都是单独的运行,要编辑导出的代码,还是需要使用外部编辑器。在 Eclipse 中使用 Subclipse插件,可以实现对 SVN 服务的操作支持。本节主要介绍使用 Subclipse插件,来实现版本管理。
14.4.1 开发工具的配置• 要使得 Eclipse 支持 SVN ,就需要安装 Subclipse插件。为 Eclipse 安装插件,可以下载单独的插件安装,或使用在线安装两种方式,此处选择在线安装的方式。
14.4.2 导入项目• 本小节主要介绍使用 Eclipse 把项目导入到资源库中的方法,下面介绍具体实现步骤:
14.4.3 取出项目• 在 Eclipse 中取出资源库中的项目,可以通过新建 SVN 项目来实现,下面分步骤来介绍其实现过程。
14.5 常见问题• 本章主要介绍了版本控制,以及与 SVN 相关的知识。本节将列出在版本控制,以及 SVN 使用过程中容易出现的问题,以及解决方法,供读者参考。
14.5.1 SVN 运行问题• 本章第 14.1.2 小节,介绍了在命令行运行状态下运行 SVN 的方法。但是使用此方法运行 SVN 后,命令行运行窗口会一直保持运行,最好的解决方案,就是把 SVN 作为服务运行。• 使用以下命令,就可以把 SVN注册为系统服务,并随系统怎么启动。• sc create svnserve binpath= "\"C:\Program Files\svn-win32-1.4.5\bin\svnserve.exe\" --service --root \"d:\project\"" displayname= "Subversion" start= auto
14.5.2 SVN 与 CVS• 有可能用户习惯于使用 CVS ,大部分的项目都是通过 CVS 进行管理的。要想把 CVS 管理的项目都转换为使用 SVN 管理,可以使用转换工具实现 CVS向 SVN 的迁移,这个转换工具可以从其官方网址处下载,下载地址为: http://cvs2svn.tigris.org/servlets/ProjectDocumentList 。
14.5.3 SVN 命令行乱码• 在安装完 SVN 后,有时运行 SVN 命令,会出现乱码的情况,这是由于系统中没有指定 SVN 使用的字符集,通过设置两个系统变量,就可以解决这个问题,具体的设置方面可以参照本章的第 14.1.1 小节的第 7、 8 两个步骤。