前言
在上一文http://www.cnblogs.com/wql025/p/5177699.html中,我们讲到了使用SVN的第一步,即下载、安装SVN的服务端软件--VisualSVN server和客户端软件--TortoiseSVN。现在,我们就来在此基础上学习怎样使用这两个软件的最基础的功能以及在eclipse上如何使用。
本文参考网址:http://blog.chinaunix.net/uid-26520343-id-3047514.html
首先,和oracle一样,用SVN服务端首先要开服务,所以小伙伴们一开机就打开这个服务吧(如果有用到本机作为服务器)。
一、添加一个版本库【Repository】
1.首先打开VisualSVN Server Manager。开始--》所有程序--》VisualSVN Server Manager。如图:
界面:
2.Repositories右键选择Create New Repository..
3.选择默认选项,点下一步
4.在Repository Name输入一个文件夹名作为保存项目的文件夹,点下一步
5.选择默认选项,点下一步
6.选择默认选项,点Create
7.本地SVN服务器的存储地址已经建好了。其中https://Lenovo-PC/svn/是本机的根地址。点Finish
建好的界面如下:
二、在SVN服务端VisualSVN 建立用户、用户组、赋权
1.右键Users,点击新建 User
2.为用户起名字和密码,点OK
3.一个用户创建完了
4.创建用户组,右键Groups,新建 Group
5.为这个新建的用户组起个名字(就已接下来要导入的本地项目名为名),点击Add,把新建的用户添加进来,点击OK
6.现在已经为testProject添加了developer1这个用户了,点击OK
7.现在就要给用户赋权了。右键刚才新建的版本库testProject,点击Properties
8.点击Add
9.选择要赋权的对象。可以是针对的是Everyone,可以是Groups,可以是Users下进行选择
10.选择用户及在紫色框中选择要赋予的权限,点确定
11.我们按照上面的方法再加一个test用户--测试人员,他只具备Read Only 权限。
三、将本地项目上传至/导入SVN服务器。
这里导入https://Lenovo-PC/svn/testProject这个地址。
1.新建一个项目--testProject
2.项目右键,选择TortoiseSVN-->导入
3.在testProject/后面起个名字作为这个仓库的子路径--这个名字和2.2所导入的项目名一样,作为这个项目的名字(如果不起的话,导入后就没有项目名字了。这点要注意下。),然后在“导入信息”下面的框中填写“导入项目到版本库”--这是记录日志,点击确定。
4.在弹出一个验证框输入用户名和密码,如下:输入创建的developer1 , 123 即可。
导入成功。
5.右键刷新新建的版本库testProject,即可看到已导入的项目。
四、检出项目到本地
1.在要检出的目录右键选择 SVN检出(K)
2.点击确定
3.检出成功
五、修改、添加文件...
5.1 修改代码
1.选择此项目的一个java文件。
2.用EditPlus打开,添加一行代码,保存后关闭。
3.可以看到修改后的变化。
4.现在我们提交代码,我是在MySvnTest.java所在的包提交,也可以直接在MySvnTest.java上提交。
5.下面选择提交的内容,分别是MySvnTest.java及其备份--MySvnTest.java.bak(注:这个文件的备份文件是上一次版本的备份。),点击确定。
6.提交完毕
注意:提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突。
5.2 添加代码
和修改的原来流程一样,这里就不说了。
5.3 更新代码
更新本机代码与SVN服务器上最新的版本一致。
这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。
注意:更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。
5.4 重命名文件或文件夹,并将修改提交到SVN服务器
只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVN Commit提交到SVN服务器后才真正重命名。
5.5 删除文件或文件夹,并将修改提交到SVN服务器
最简单就是,你直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN Commit提交到SVN服务器后才真正删除。
说明:实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。
以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。
注意:向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用,这样有什么好处,自己想一想吧。
六、eclipse从SVN服务器检出项目
1.打开SVN资源库视图,点击添加SVN资源
2.填写SVN服务器的版块库地址
3.在项目上右键选择--》检出为
4.点击next
5.选择项目位置,点击Finish
6.检出至本地成功
七、版本库迁移
假如有两个服务器A和B,版本库原来在A服务器上,现在要移到B服务器,做法如下
1,将A中的版本库更新到MYeclipse(注意要删除掉....\WebRoot\WEB-INF\下的calsses文件夹,因为这里包含Myeclipse自动编译文件,如果不删除就上传至版本库,check出来的项目同步时会报错),右击项目-team-disconntect(断开)-选择第一项-Yes,目的是将原来使用svn或cvs时项目中的.cvs和.svn文件清除掉
2,在B上安装客户端和服务端,再按上面讲的步骤在B的服务端上建版本库,然后把项目拷贝到B中的某个位置,使用svn客户端右击项目,选择import导入到版本库中
(参考:http://www.cnblogs.com/lzhdim/archive/2009/04/23/1442189.html
http://hi.baidu.com/hsyl/blog/item/7ad43b2986af8bf498250a54.html )
后记
本来想做一下用户权限测试--即用test用户看看能不能修改SVN检出至eclipse的代码,可能因为在3.4步选择了“保存认证”,所以在eclipse检出SVN的项目时并没有弹出输入用户名/密码的验证框--这个以后有时间再测。
已测试,测试结果与“后记”中推测一致,如下:
1.在将本地项目导入至版本库时输入用户名、密码的弹出框不要选“保持认证”。
2.在eclipse检出本地项目时就会弹出“输入用户名和密码”的验证框。
3.当输入密码后就会显示这个资源下的项目--不过为了省事,我们上面还是点击保持密码好了。
--测试失败--算了,以后测试。下次测试在两台电脑上测试。