第 14 章 版本管理

26
第 14 第 第第第第 • 第第第第第第第第第第第第第第第 第第第第第第第第第第第第第第第 第第第 ,, 第第第第第第第 第第第第第第第第第第第第第第第第 第第第第第第第第第 ,一, 第第第第第第第第 第第第第 第第第第 第第第第第第第第第第第第第第第第第 ,一。 第第第第第第第第第第第第第第 第第第第第第第第第第第 ,。 SVN 第第第第第 第第第第第 Eclipse 第第第 SVN 第

Upload: mostyn

Post on 15-Mar-2016

83 views

Category:

Documents


6 download

DESCRIPTION

第 14 章 版本管理. 版本管理也就是对软件产品的管理,主要内容就是使用版本管理软件,对软件产品开发过程中,一个或多个文件的修订过程进行跟踪,当这些文件组成的产品可以稳定运行时,就称为一个版本。版本管理不仅可以提高软件产品的稳定性,也可以优化开发人员的工作量。本章主要介绍版本管砣砑 SVN 的安装与使用,以及如何在 Eclipse 中使用 SVN 。. 14.1 SVN 下载与安装. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 14 章  版本管理

第 14 章 版本管理• 版本管理也就是对软件产品的管理,主要内容就是使用版本管理软件,对软件产品开发过程中,一个或多个文件的修订过程进行跟踪,当这些文件组成的产品可以稳定运行时,就称为一个版本。版本管理不仅可以提高软件产品的稳定性,也可以优化开发人员的工作量。本章主要介绍版本管砣砑 SVN 的安装与使用,以及如何在 Eclipse 中使用 SVN 。

Page 2: 第 14 章  版本管理

14.1 SVN 下载与安装• 版本管理软件有很多,例如 VSS 、 PVCS 、 CVS等,本章将主要介绍一种更加强大的版本管理软件 SubVersion ,即 SVN 。 SVN 主要是用来替换开源社区中,最流行的版本管理软件 CVS 。

Page 3: 第 14 章  版本管理

14.1.1 SVN 下载与安装• SVN 替换 CVS 的原因,不仅仅是解决了 CVS 系统的一些不足,同时实现了更好的版本解决方案。下面列出 SVN 的一些特性,供读者参考。• 可通过 APACHE 服务器,提供 WebDAV/DeltaV协议的支持。• 可脱离 APACHE 服务器,独立运行。• 软量级的分支与标签操作。• 加强了对于二进制文件的支持。

Page 4: 第 14 章  版本管理

14.1.2 SVN 配置与运行• SVN 支持通过命令行状态,进行软件版本管理,本小节将按步骤介绍,如何在命令行状态下使用SVN 。

Page 5: 第 14 章  版本管理

14.2 SVN 命令行客户端• 在安装及配置完 SVN 后,就可以通过客户端来管理项目了。 SVN 在安装时,已经提供了客户端命令 svn , svn 是一个基于命令行的工具,通过 svn 可以完成大部分的项目管理操作,本节将介绍如何使用 svn 完成管理版本的各种操作。

Page 6: 第 14 章  版本管理

14.2.1 导入项目• 要把一个项目导入到 SVN 资源库中,可以使用以下命令实现:• svn import 项目路径 SVN 资源库路径及名称 -m " 项目说明,必选 " --username 项目资源库管理者用户名 --password 项目资源库管理者密码• svn import :用于把当前项目,导入到 SVN 资源库中。• 项目路径:要导入到资源库中的项目,可以使用绝对路径,也可以使用相对路径。• SVN 资源库路径及名称:其格式为 svn://localhost/learn ,其中 learn 是使用 svnadmin 创建的资源库。• -m " 项目说明,必选 " :用于导入项目时,项目的说明文字,此项必不可少。• --username 项目资源库管理者用户名:用于指定访问资源库的用户的用户名,此用户名在配置资源库是,在 passwd 文件中添加的。• --password 项目资源库管理者密码:用于指定访问资源库的用户的密码,此密码在配置资源库时,在 passwd 文件中设置的。

Page 7: 第 14 章  版本管理

14.2.2 导出项目• 要把一个项目从 SVN 资源库中导出,可以使用以下命令实现:• svn checkout SVN 资源库路径及名称 --username 项目资源库管理者用户名 --password 项目资源库管理者密码• svn checkout :用于把 SVN 资源库中的项目,导出到当前文件夹。• SVN 资源库路径及名称:其格式为 svn://localhost/learn 。• --username 项目资源库管理者用户名:用于指定访问资源库的用户的用户名。• --password 项目资源库管理者密码:用于指定访问资源库的用户的密码。

Page 8: 第 14 章  版本管理

14.2.3 更新本地项目• SVN 的更新本地项目功能,主要用于团队工作时使用。当团队其他成员对项目做出更新并提交后,可以使用 svn update 命令,来取得这些更新的文件到当前编辑的项目。 svn update 命令没有其他参数,只接在命令运行窗口中输入 svn update 并回车,就可以把当前编辑的项目更新为最新修改的版本。

Page 9: 第 14 章  版本管理

14.2.4 查看项目状态• SVN 的查看项目状态的命令是 svn status ,其主要用于列出当前编辑的项目中,所以相关的修改,而不用访问资源库。运行 svn status 命令时,当前目录必须是一个有效的副本。可以通过查看图,来了解 svn status 运行的情况。

Page 10: 第 14 章  版本管理

14.2.5 项目对比• 使用 svn diff命令,可以根据当前编辑版本中的元数据,与已经修改的版本进行比较,并列出已经修改的项目,以及修改的具体内容。在有效的编辑版本目录下,输入 svn diff,运行结果如图所示。

Page 11: 第 14 章  版本管理

14.2.6 恢复项目• 使用 svn revert 命令,可以从资源库中恢复指定的文件到当前编辑版本中。下面演示其使用方法。在有效的编辑版本目录下,输入 svn recert readme.txt ,运行结果如图所示。

Page 12: 第 14 章  版本管理

14.2.7 项目提交• 在对当前修改版本进行修改、编辑、删除、添加等操作后,最后的工作就是把这些文件的新状态提交到资源库中,以便于下次修改项目时,调用编辑好的内容。• SVN 用于进行项目提交的是 svn commit 命令,其使用方法如下示:• svn commit 要提交的文件或目录 -m "注释 " --username 用户名 -password 密码• svn commit :用于提交指定的文件或目录到资源库中。• 要提交的文件或目录:用于指定要提交到资源库中的文件或目录。• -m "注释 " :用于注释提交的文件或目录。• 在有效的编程版本目录下,运行以下命令:• svn commit .

Page 13: 第 14 章  版本管理

14.3 SVN 可视化管理界面• SVN 对于版本管理来说,提供的功能足够强大,但是其命令行式的客户端管理方式,并不是很友好,解决这个问题,可以使用第三方的,基于可视化管理界面的 SVN 客户端工具来解决。本节将使用 SVN 客户端管理工具 TortoiseSVN ,实现版本管理过程中各种操作。

Page 14: 第 14 章  版本管理

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 。

Page 15: 第 14 章  版本管理

14.3.2 创建项目仓库• TortoiseSVN 安装完成后,主要功能都集成在右键菜单中。下面演示使用 TortmiseSVN 创建项目仓库的方面。

Page 16: 第 14 章  版本管理

14.3.3 导出项目• 本小节将分步骤介绍,如何使用 TortoiseSVN ,导出资源库中已经存在的项目。

Page 17: 第 14 章  版本管理

14.3.4 更新本地项目• 使用 TortoiseSVN 导入的文件夹,在资源管理器中显示时,其文件夹的图标如图 14-33 中的文件夹图标所示。• 在导出项目的文件夹上单击右键,在弹出的菜单中选择“ SVN Update”菜单项,以实现与 svn update 命令相同的功能。

Page 18: 第 14 章  版本管理

14.3.5 项目提交• 在修改完当前项目后,可以使用 TortoiseSVN 把修改的内容,提交到资源库中。在需要提交的文件夹或文件上单击右键,在弹出的菜单中选择“ SVN Commit”菜单项,以实现与 svn commit命令相同的功能。执行完 SVN Commit 命令后, TortoiseSVN 将显示项目提交窗口,如图所示。

Page 19: 第 14 章  版本管理

14.4 SVN 与开发工具• 不管使用命令行客户端,还是使用 TortoiseSVN ,都是单独的运行,要编辑导出的代码,还是需要使用外部编辑器。在 Eclipse 中使用 Subclipse插件,可以实现对 SVN 服务的操作支持。本节主要介绍使用 Subclipse插件,来实现版本管理。

Page 20: 第 14 章  版本管理

14.4.1 开发工具的配置• 要使得 Eclipse 支持 SVN ,就需要安装 Subclipse插件。为 Eclipse 安装插件,可以下载单独的插件安装,或使用在线安装两种方式,此处选择在线安装的方式。

Page 21: 第 14 章  版本管理

14.4.2 导入项目• 本小节主要介绍使用 Eclipse 把项目导入到资源库中的方法,下面介绍具体实现步骤:

Page 22: 第 14 章  版本管理

14.4.3 取出项目• 在 Eclipse 中取出资源库中的项目,可以通过新建 SVN 项目来实现,下面分步骤来介绍其实现过程。

Page 23: 第 14 章  版本管理

14.5 常见问题• 本章主要介绍了版本控制,以及与 SVN 相关的知识。本节将列出在版本控制,以及 SVN 使用过程中容易出现的问题,以及解决方法,供读者参考。

Page 24: 第 14 章  版本管理

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

Page 25: 第 14 章  版本管理

14.5.2 SVN 与 CVS• 有可能用户习惯于使用 CVS ,大部分的项目都是通过 CVS 进行管理的。要想把 CVS 管理的项目都转换为使用 SVN 管理,可以使用转换工具实现 CVS向 SVN 的迁移,这个转换工具可以从其官方网址处下载,下载地址为: http://cvs2svn.tigris.org/servlets/ProjectDocumentList 。

Page 26: 第 14 章  版本管理

14.5.3 SVN 命令行乱码• 在安装完 SVN 后,有时运行 SVN 命令,会出现乱码的情况,这是由于系统中没有指定 SVN 使用的字符集,通过设置两个系统变量,就可以解决这个问题,具体的设置方面可以参照本章的第 14.1.1 小节的第 7、 8 两个步骤。