1,单机使用(建议tortoisesvn,搭建容易,使用较简单)
开始试用
这一节通过一个小的实验版本库向你展示如何开始一些最普通的用途。实际上这里没有介绍全部功能 - 这只是一个快速开始向导而已。一旦你开始使用,你应该花点时间读一下本手册的其它部分,在那里将会详细地介绍本软件的方方面面。也会介绍更多关于设置一个全功能 Subversion 服务器的内容。
对于一个实际的项目,需要在一个安全的地方创建版本库并设置 Subversion 服务器来控制它。而对于本教程而言,我们将会使用 Subversion 的本机版本库功能,该特性使得用户可以直接访问本机硬盘上的版本库而不需要服务器。
First create a new empty directory on your PC. It can go anywhere, but in this tutorial we are going to call it C:\svn_repos
. Now right click on the new folder and from the context menu choose → . The repository is then created inside the folder, ready for you to use. We will also create the default internal folder structure by clicking the button.
重要
对于测试和评估用途来说,本机版本库功能非常有用,但除非你是一个只使用自己电脑进行独自工作的开发者,否则你应该使用全功能的 Subversion 服务器。有些小公司为了避免设置服务器的工作,就通过网络共享来存取版本库。不要这样做。这样会丢失数据。阅读 “访问网络共享磁盘上的版本库”一节 了解为什么这是一个坏主意,以及如何设置服务器。
Now we have a repository, but it is completely empty at the moment. Let's assume I have a set of files in C:\Projects\Widget1
that I would like to add. Navigate to the Widget1
folder in Explorer and right click on it. Now select → which brings up a dialog
A Subversion repository is referred to by URL, which allows us to specify a repository anywhere on the Internet. In this case we need to point to our own local repository which has a URL of file:///c:/svn_repos/trunk
, and to which we add our own project name Widget1
. Note that there are 3 slashes after file:
and that forward slashes are used throughout.
这个对话框中另一个重要的功能就是导入信息文本框,你可以输入一段信息来描述你的操作。当你查看项目的历史时,这些提交信息是记录了你修改什么和为什么修改的宝贵资料。在这个例子中,我们可以简单的写一下,例如“导入 Widget1 项目”。点击 ,文件夹就加入到版本库中了。
Now that we have a project in our repository, we need to create a working copy to use for day-to-day work. Note that the act of importing a folder does not automatically turn that folder into a working copy. The Subversion term for creating a fresh working copy isCheckout
. We are going to checkout the Widget1 folder of our repository into a development folder on the PC called C:\Projects\Widget1-Dev
. Create that folder, then right click on it and select → . Enter the URL to checkout, in this casefile:///c:/svn_repos/trunk/Widget1
and click on . Our development folder is then populated with files from the repository.
你会注意到,这个文件夹看起来与我们原来的文件夹不一样。每一个文件的左下角都有一个绿色的对钩。它们就是只出现在工作副本中的 TortoiseSVN 状态图标。绿色的图标表示文件未被修改,和版本库中的文件版本一致。
工作时间到了。 在 Widget-Dev
中,我们开始编辑文件 - 假设我们对 Widget1.c
和 ReadMe.txt
进行了修改。注意,这些文件的重载图标变成了红色,这说明本机文件被修改了。
但是我们做了哪些更改?右键单击任意一个修改过的文件然后选择
→ 。启动 TortoiseSVN 的文件比较工具,准确地显示哪些行被修改了。
好的,我们对这些更改很满意,让我们更新版本库。这个动作叫 提交
更改。右键单击文件夹 Widget1-Dev
然后选择 → 。提交对话框列出了修改过的文件,每一个都有一个复选框。你可以选中列表中的部分文件,但在这个例子中我们将要提交全部修改过文件。输入一段信息来描述做了什么修改然后单击 。进度对话框显示被上传到版本库中的文件并且完成提交。
随着项目的发展,需要添加新文件 - 例如说你要添加新功能,有了新文件 Extras.c
还要在现有的文件 Makefile
中加入起对该文件的引用。右键单击文件夹然后选择 → 。 加入对话框显示了所有未被版本控制的文件,你可以选择哪些文件要被添加。另一个增加文件的方法是右键单击文件自身然后选择 → 。
现在当你提交文件夹时,新文件会显示为增加,原有的文件显示为修改。注意你可以双击修改的文件查看做了哪些改动。
TortoiseSVN 最有用的功能之一便是日志对话框。它显示针对文件或文件夹所有的提交记录列表,并显示提交者输入的那些详细的提交信息。 ;-)
好吧,我在这里小小的作弊一下,使用一张显示 TortoiseSVN 版本库的屏幕截图。
对话框的上部显示提交的版本列表以及提交信息的开头。如果选中版本列表中的任意一个,对话框的中部显示该版本完整的日志消息,对话框的底部显示更改的文件和文件夹列表。
对话框的每一部分都有右键菜单提供很多使用这些信息的方法。在底部可以 双击 文件来完整的查看该版本所做的修改。参阅 “版本日志对话框”一节 获得完整的内容。
所有的版本控制系统都有的功能就是让你可以撤销之前做的更改。如你预料的一样,TortoiseSVN 非常容易做到这一点。
如果你想抛弃还没有提交的更改并将文件复原到修改之前的状态,
→ 就是你的好伙伴。它抛弃了所做的更改(扔到回收站里)并复原到修改之前的版本。如果你想抛弃更改的一部分,可以使用 TortoiseMerge 来查看区别并有选择的复原被修改的文件行。如果你要撤销某一个特定版本的影响,启动日志对话框,找到不想要的版本。选择
→ 然后这些更改就会被撤销。