SVN使用指南
1.SVN服务器信息:
(1) 服务器地址:192.168.21.101
(2) 在SVN中填写的SVN路径svn://192.168.21.101
2.SVN客户端使用指南:
我们主要用到的客户端有2种,一种是和Eclipse集成的Subeclipse,一种是建立在WINDOWS平台的TortoiseSVN。下面分别介绍这2种工具的安装和使用方法。
(1) 首先介绍Subeclipse的安装,也是2种安装方式:
Ø 【推荐】进入Eclipse,Help -> Software Updates -> Available Software(标签) -> Add Site(按钮) -> 输入http://subclipse.tigris.org/update_1.0.x -> 稍等一会,等该条目展开后点击Install按钮(需要注意的是Subclipse的版本已经超过1.4,但是我们现在用1.0的,因为大家的Eclipse版本较低)。
Ø 还有一种是去下载Subeclipse,这个插件我已经下下来了,也放在SVN中。安装的方法和一般的Eclipse插件是一样的。
接下来介绍下Subeclipse的使用方法:
Ø 安装完插件,你需要告诉它你的工程仓库位于何处。你是在SVN Repository视图中实现的。打开这个视图("Windows>Show View>Other>SVN Repository")并且在上下文菜单中选择"New>Repository Location"以显示一个如图2所示的对话框。输入适当的URL(这里的URL是svn://192.168.21.101)并且点击"Finish"。现在,让我们把一个工程检出到你的Eclipse工作区中。这只需选择你需要的Subversion仓库,打开上下文菜单,并且选择"Checkout"即可。
Ø 如果你只是启动了一个新的工程,那么你需要把它导入到Subversion仓库。Subclipse提供了一种方便的方式来直接从你的IDE内部实现这一点。为此,只需要从Package Explorer视图下选择你的工程,并且在上下文菜单中选择"Team>Share Project"。你可以使用现有仓库之一或创建一新的仓库定义。在你指定仓库和工程名之后,你能指定你想放到仓库中的文件和目录并且提供一个初始注释(见图4)。这种方法特别有用,因为它让你有选择地导入仅由Subversion管理的文件,即使该工程还包含其它文件(例如生成的类,临时文件或其它不是必需的内容等)。
(2) 接下来介绍TortoiseSVN。Tortoise,顾名思义,乌龟。他的安装比较简单:
Ø 我下了一个目前最新的Tortoise版本:1.6.5的,在SVN中。由于是Windows下的程序,所以直接安装即可。
介绍一下使用方法:详细的使用方法在另外一篇名为《Tortoise使用指南.doc》中。
3.Windows平台下的SVN服务器配置指南
(1) 下载Subversion,我下了个1.51版本的,在SVN中(附一个1.46的下载地址:http://subversion.tigris.org/files/documents/15/41077/svn-win32-1.4.6.zip)。
(2) 下载apache-2.2.6,http://archive.apache.org/ dist/httpd/binaries/win32/
apache_2.2.6-win32-x86-openssl-0.9.8e.msi,SVN中也有。如果下载的apache是windows安装版的,那么直接安装。安装的过程中间有一点一定要注意,也是我卡了很长时间的地方,那就是80端口占用的问题。因为apache默认要用80端口,如果80端口被占用的话,apache就不能起来。所以安装前最好在控制台下用netstat –aon查看下端口的占用情况。还有一点就是安装的过程中会要你填写域名和邮件地址,这里的域名是你输入svn url的地址,比如你输入localhost,那么svn域名就是svn://localhost.然后邮件地址随便输入都成。
(3) 把第一步下载的SVN安装,如果是windows安装文件的话,像一些参数环境什么的都不用自己配了。(如果是解压版的话,按如下步骤进行操作:解压svn-win32-1.5.1.zip到C:/svn-1.5.1,复制intl3_svn.dll, libdb44.dll到C:/Program Files/Apache Software Foundation/Apache2.2/bin;拷贝mod_authz_svn.so, mod_dav_svn.so到C:/Program Files/Apache Software Foundation/Apache2.2/modules,然后设定PATH环境变量,增加C:/svn-1.5.1/bin)。
(4) 创建SVN资源库根路径(我建在E:/svn下),可以用toitorse创建,具体过程是在E盘下建立一个名为svn的空文件夹,然后在上面右键选择tortoise,选择create repository here,然后输入svn url,就ok了。或者采用命令行方式:用svnadmin create E:/svn/ 。 创立好资源库路径后,就要启动svn的守护程序了。我用的是这个命令: svnserve.exe -d -r E:/svn 记得后面一定要跟上E:/svn,否则很有可能出现No repository found的错误(惨痛教训啊兄弟们)。
(5) 到上面为止,我们的基本配置都完成了,接下来是一些参数设置,比如密码,权限分配等等。我就懒得打了,抄了一段:
用文本编辑器打开E:/svn/conf目录,修改svnserve.conf:
将:# password-db = passwd
改为:password-db = passwd
即去掉前面的 # 注释符,注意前面不能有空格。
然后修改同目录的passwd文件,增加一个帐号:
将:[users]
# harry = harryssecret
# sally = sallyssecret
增加帐号:[users]
#harry = harryssecret
#sally = sallyssecret
test = test
六、初始化导入
下面就是将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在 d:/wwwroot 下有个 guestbook 文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/repos1/guestbook”。在“Import message”输入“导入整个留言簿”作为注释。
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 guestbook 中的内容全部导入到了 svn://localhost/svn/repos1/guestbook 。
我们看到在 e:/svn/repos1 没有任何变化,连个 guestbook 文件夹都没有建立,唯一的变化就是e:/svn/repos1容量变大了。实际上我们源guestbook中的内容已经导入 repos1 版本库了,源 guestbook 文件夹可以删除了。
需要注意的是,这一步操作可以完全在另一台安装了 TortoiseSVN 的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22” 。
七、基本操作流程
1、取出(check out)
取出版本库到一个工作拷贝:
来到任意空目录下,比如在f分区建立一个空文件夹 f:/work 。“右键 -> SVN Checkout”。在“URL of repository”中输入“svn://localhost/svn/repos1/guestbook”,这样我们就得到了一份 guestbook 中内容的工作拷贝。
2、存入(check in)/提交(commit)
在工作拷贝中作出修改并提交:
在 guestbook 工作拷贝中随便打开一个文件,作出修改,然后“右键 -> SVN Commit... ”。这样我们就把修改提交到了版本库,版本库根据情况存储我们提交的数据。
在修改过的文件上“右键 -> TortoiseSVN -> Show Log” ,可以看到对这个文件所有的提交。在不同的 revision 条目上“右键 -> Compare with working copy”,我们可以比较工作拷贝的文件和所选 revision 版本的区别。