SVN是一款功能强大的版本控制系统,对于习惯于windows环境的中国工程师而言,使用TortoiseSVN是个不错的选择,其友好的界面和易用的操作使得其很容易掌握。
从网址:http://tortoisesvn.net/downloads可以下载到最新版的TortoiseSVN,如果不习惯英文界面的话还有中文语言包可以安装,真是十分方便。
对于局域网内有服务器支持的版本管理系统,按照软件的帮助手册中的说明去建立就好。本文主要讲述如果建立本地版本管理,也就是服务器和客户端都在一台机器上的情况。
按照TortoiseSVN的帮助文档中的说明,在新建的空文件夹上使用右键菜单的create repository here命令成功建立一个仓库后,使用右键的import命令来向仓库中装载尚未版本化的源码的话,就会报出如下错误:
Unable to open an ra_local session to URL
Unable to open repository 'file:///D:/explorer'
注意上面的路径是正确的,但是用这种方法就是怎么也不能把源码放入版本库里,我在网络上搜索了好久也没有找到解决方法,所以我相信这应该是TortoiseSVN的一个bug吧!
因为两年前上学的时候曾经使用过一段TortoiseSVN,因此在不断回忆和尝试的探索下,我终于找到了一种可以将源码正确放入仓库进行版本化管理的方法。具体操作如下:
1. 先建立一个仓库,没导入源码前这个仓库是空的。
2. 在源码的文件夹上右键选择checkout命令,这是导出仓库中的代码的操作。在弹出的对话框中选择刚才建立好的空仓库后,会得到如下图所示的情况:
上图中我新建的仓库名是mydisk,我的源码所在的文件夹是new project。注意,这时SVN自动要在new project目录下新建了一个名为mydisk的文件夹来存放导出的内容,这不是我们希望的,如果这样的话那么new project中的源码就无法导入到mydisk仓库内了,所以删除checkout directory项下路径中的mydisk,然后单击确定,软件会提示当前的文件夹是非空的,询问是否继续,选择是即可。会打印出如下信息:At revision: 0。表示版本库已经顺利导入了当前源码所在的文件夹,虽然这个版本库是空的。
3. 再次在源码的文件夹上单击右键,就可以看到菜单的命令项多出了许多,同时也有SVN update和SVN commit命令了,这是因为SVN版本库已经位于当前源码所在的文件夹了。选择add命令,在弹出的对话框中选择所有源码文件、取消那些工程控制文件,单击确定,就可以看到SVN会打印出把所有的源码添加到版本库的过程了。但是,这是源码还没有真正加入到版本库内。
4. 再次在源码的文件夹上单击右键,选择SVN commit命令,在弹出的对话框中可以看到前面选择的源码文件都在即将加入到版本库的候选列表中,在这里也可以选择或者取消是否将某个文件加入到版本库中,添加好日志信息后,单击确定,就可以看到SVN真正地将数据导入到仓库的过程了。
5. 此时可以继续在原来的源码文件夹内开发修改并提交到版本库进行控制,也可以新建一个文件夹从版本库导出一个版本,然后在此基础上开发。