什么是 TortoiseSVN?
SVN 全名是 Subversion,它是一个开源的版本控制软件,与它类似的软件有 CVS,VSS,ClearCase。只要接触过团队开发,对这类软件肯定不会陌生。而 SVN 作为一个跨平台的开源软件,具有很强的活力,目前也已经相当成熟,很多开源项目都用它来管理文档或是代码。
更为重要的是,不仅仅是团队开发,作为个人独立开发的项目(或者个人想维护的文档)也可以用 SVN 进行管理,而不需要另外一台服务器。
TortoiseSVN 是 SVN 的一个 Windows 外壳扩展应用,它可以帮助用户直观的进行 SVN 的各种操作,而不需要使用命令行。作为个人用户,只要安装 TortoiseSVN 即可,而不用再去安装配置 SVN。
TortoiseSVN 快速入门
下面我就来对 TortoiseSVN 从安装到第一个代码库的建立和使用做一个最简单的介绍。即使对 TortoiseSVN 一无所知,通过下面的操作,也可以初步领略 SVN 管理代码的乐趣。
一,安装
TortoiseSVN 的官方主页:http://tortoisesvn.net,首先下载当前版本的 TortoiseSVN,希望能有中文界面的还可以选择语言包下载。同时在语言包旁边,你还可以看到中文的使用手册。
安装 TortoiseSVN 非常简单,在结束后会提示重启,这是因为 TortoiseSVN 与资源管理器整合,它的图标功能需要重启后才能使用,所以建议这里重启一下。
这个时候,在任何一个文件夹点右键,就会出现如下的菜单:
如果是英文界面,那么在 TortoiseSVN --> Settings 中可以选择语言。TortoiseSVN 的所有操作都是通过右键菜单来完成的。
二,创建版本库
首先,我们要新建一个文件夹来保存 SVN 的数据,比如我们建立了一个空文件夹:"D:\MySVN"。在这个文件夹图标上点击右键,在菜单中选择:在此创建版本库,很快就会提示建立完成。
这个时候,你会发现这个文件夹里面会增加好多文件,它将保存你的用户权限的设置以及所有的代码信息。现在不用管它,按照默认设置就可以很好工作。以后如果要在另外一台机器上修改代码,或者希望别人也能使用你的代码库,只要把这个文件夹复制过去就行。备份也是如此。
注:从网上看早期的教程,那些文章在这一步会提到选择 Berkeley 数据库(BDB)或者本地文件系统(FSFS)。但是从 SVN 1.5 版本开始,已经取消了 BDB 的选择,直接默认的就是 FSFS。
注:为了避免因为多字节字符造成的种种问题,建议把版本库的路径和名字不要含有中文或者空格。这个问题虽然可能随着软件的升级得到解决,不过目前看来,有时还会出问题。不过这个问题仅限于版本库,受管理的代码和目录可以任意取名。
三,检出到工作目录
完成上一步后,我们已经建立了一个代码仓库,下面就是要设置工作目录。工作目录一般来讲,就是存放了当前最新版本的代码,程序的编写和修改都在这个目录完成。比如我们在桌面选择一个文件夹,名叫 Project。在这个文件夹图标上,点击右键,选择:SVN 检出。
然后在版本库 URL 中选择刚才创建的版本库:file:///D:/MySVN,点击确定,就开始从版本库中获取代码了。
自然,因为我们版本库是空的,所有什么代码也没有。如果你打开隐藏文件显示,会发现多了一个 .svn 的文件夹,它存放的是本地文件版本控制的信息,不要删除或者修改它,以后工作目录的每层路径都会有 .svn 文件夹。为了防止误删这个文件夹,我们不显示隐藏文件。
刷新一下桌面,会发现我们的 Project 文件的图标左下角会多出一个绿色的对号,这表明它已经纳入了版本控制。
注:你可以在任何地方多次检出。
四,提交入库
第一次向版本库中加入代码可以使用导入的功能,不过我还是喜欢直接添加文件。比如我向 Project 中复制了几个目录和文件。因为这些文件是新增的,所以自动会用问号来标记。
然后我希望把这些文件存放到代码仓库中,这个时候,在 Project 文件夹内点击右键,选择:SVN 提交,然后勾选"全选",把新增的所有文件都纳入版本控制,点击确定。
五,版本管理
我们开始工作,比如新增文件、修改文件、删除文件,你会发现所有修改过的文件都会有一个红色叹号来标记。当觉得工作进行到一定阶段,有必要保存一下的时候,我们可以再次进行提交。因为现在讲解的是一个人使用,所以很少会再次检出或者进行更新,但这在团队开发中很常用。
如果你发现你这次的修改有问题,想恢复版本库中最新的版本,只要把这个文件删除,并选择更新即可。
在某种情况下,要恢复一个很久之前的版本,这个时候只要点击右键,选择:显示日志,在想复原的版本上点右键,选择:复原到此版本。
通过上面简单的介绍,希望能带大家入门。更多的操作可以参考官方的文档,非常详细。
Source URL: http://www.svn8.com/svnpz/20090622/6731.html