开始试用

这一节通过一个小的实验版本库向你展示如何开始一些最普通的用途。实际上这里没有介绍全部功能 - 这只是一个快速开始向导而已。一旦你开始使用,你应该花点时间读一下本手册的其它部分,在那里将会详细地介绍本软件的方方面面。也会介绍更多关于设置一个全功能 Subversion 服务器的内容。

创建版本库

对于一个实际的项目,需要在一个安全的地方创建版本库并设置 Subversion 服务器来控制它。而对于本教程而言,我们将会使用 Subversion 的本机版本库功能,该特性使得用户可以直接访问本机硬盘上的版本库而不需要服务器。

首先在您的个人计算机上建立一个新的空目录。这个目录可以建立在任何位置,不过在这一教程中,我们将建立 C:\svn_repos 。现在,你可以右键点击这个新文件夹,从右键菜单中选择 TortoiseSVN在这里创建版本库... 。这样做之后,一个可以供您所用的版本库就在这个文件夹中创建好了。我们还可以通过点击 创建目录结构 来创建标准目录结构。

重要

对于测试和评估用途来说,本机版本库功能非常有用,但除非你是一个只使用自己电脑进行独自工作的开发者,否则你应该使用全功能的 Subversion 服务器。有些小公司为了避免设置服务器的工作,就通过网络共享来存取版本库。不要这样做。这样会丢失数据。阅读 “访问网络共享磁盘上的版本库”一节 了解为什么这是一个坏主意,以及如何设置服务器。

导入项目

我们有一个版本库,但它现在完全是空的。假设我想要添加一些文件到C:\Projects\Widget1,在文件资源管理器中导航到Widget1并单击右键,选择 TortoiseSVN导入...弹出导入对话框

图 1.2. 导入对话框

导入对话框


,输入版本库URL,可以是互联网上任何特定的版本库。既然这样,我们也可以指向本地版本库,如file:///c:/svn_repos/trunk,并添加项目名称Widget1。请注意,file: 协议后面始终有三个斜杠。

这个对话框中另一个重要的功能就是导入信息文本框,你可以输入一段信息来描述你的操作。当你查看项目的历史时,这些提交信息是记录了你修改什么和为什么修改的宝贵资料。在这个例子中,我们可以简单的写一下,例如导入 Widget1 项目。点击确定,文件夹就加入到版本库中了。

检出工作副本

现在,你创建好了你的版本库,这时,还需要创建一个工作副本用于你平时编写代码。注意,当你把一个文件夹导入到版本库这个过程并不能使刚才的文件夹变成一个工作副本。

重要

在默认设置时,检出菜单项不在TortoiseSVN 子目录而在资源管理器根目录。不在子目录中的 TortoiseSVN 命令有SVN前缀:SVN 检出...

你会注意到,这个文件夹看起来与我们原来的文件夹不一样。每一个文件的左下角都有一个绿色的对钩。它们就是只出现在工作副本中的 TortoiseSVN 状态图标。绿色的图标表示文件未被修改,和版本库中的文件版本一致。

进行修改

该工作了。在 Widget1-Dev 文件夹中,我们开始编辑文件 - 假设我们对 Widget1.cReadMe.txt 做出了一些修改。注意这些文件的图标上的小图标变成了红色,这说明本地文件已经被修改了。

但是我们做了哪些更改?右键单击任意一个修改过的文件然后选择 TortoiseSVN比较差异。启动 TortoiseSVN 的文件比较工具,准确地显示哪些行被修改了。

图 1.3. 文件差异查看器

文件差异查看器


好的,我们对这些更改很满意,让我们更新版本库。这个动作叫 提交 更改。右键单击文件夹 Widget1-Dev 然后选择 TortoiseSVN提交。提交对话框列出了修改过的文件,每一个都有一个复选框。你可以选中列表中的部分文件,但在这个例子中我们将要提交全部修改过文件。输入一段信息来描述做了什么修改然后单击 确定。进度对话框显示被上传到版本库中的文件并且完成提交。

添加更多的文件

随着项目的发展,需要添加新文件 - 例如说你要添加新功能,有了新文件 Extras.c 还要在现有的文件 Makefile 中加入起对该文件的引用。右键单击文件夹然后选择 TortoiseSVN增加。 加入对话框显示了所有未被版本控制的文件,你可以选择哪些文件要被添加。另一个增加文件的方法是右键单击文件自身然后选择 TortoiseSVN加入

现在当你提交文件夹时,新文件会显示为增加,原有的文件显示为修改。注意你可以双击修改的文件查看做了哪些改动。

查看项目历史

日志对话框是TortoiseSVN 最有用的功能之一。它把你所有的文件/文件夹提交记录显示为一个列表,并且显示你输入的详细提交信息(你按照建议输入提交信息了吗?如果没有,现在知道多重要了吧)。

图 1.4. 日志对话框

日志对话框


好吧,我在这儿偷个懒,用一张TortoiseSVN 版本库的截图。

对话框的上部显示提交的版本列表以及提交信息的开头。如果选中版本列表中的任意一个,对话框的中部显示该版本完整的日志消息,对话框的底部显示更改的文件和文件夹列表。

对话框的每一部分都有右键菜单提供很多使用这些信息的方法。在底部可以 双击 文件来完整的查看该版本所做的修改。参阅 “版本日志对话框”一节 获得完整的内容。

撤消更改

所有的版本控制系统都有的功能就是让你可以撤销之前做的更改。如你预料的一样,TortoiseSVN 非常容易做到这一点。

如果你想抛弃还没有提交的更改并将文件复原到修改之前的状态,TortoiseSVNSVN 还原 就是你的好伙伴。它抛弃了所做的更改(扔到回收站里)并复原到修改之前的版本。如果你想抛弃更改的一部分,可以使用 TortoiseMerge 来查看区别并有选择的复原被修改的文件行。

如果你要撤销某一个特定版本的影响,启动日志对话框,找到不想要的版本。选择 右键菜单复原此版本作出的修改 然后这些更改就会被撤销。