一、安装下载:
下面是SVN的服务端,客户端,eclipse插件的下载页面和下载地址,可以直接复制下载地址进行下载,如果需要其他版本可以到下载页面中选择,我使用的是1.6的版本。
Subversion 下载页面:http://subversion.apache.org/packages.html(各种平台的版本都在里面)
下载地址:http://nchc.dl.sourceforge.net/project/win32svn/1.6.17/Setup-Subversion-1.6.17.msi
TortoiseSVN 下载页面:http://tortoisesvn.net/downloads.html
下载地址:http://nchc.dl.sourceforge.net/project/tortoisesvn/1.6.16/Application/TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi
Eclipse/MyEclipse插件 下载页面:http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA
下载地址:http://subclipse.tigris.org/files/documents/906/49028/site-1.6.18.zip
二、准备工作
1.创建版本库
使用命令行方式:svnadmin create d:\svn 就可以将D盘下的svn文件夹作为一个版本库
或者进入该文件夹->鼠标右键->TortoiseSVN->create repository here同样可以创建
2.修改配置文件
在版本库文件夹下有一个conf文件夹,里面有三个文件,下面分别解释:
svnserve.conf 这是一个核心的配置文件,里面可以配置SVN的权限设置,比如是否允许匿名用户访问等
passwd 用户配置文件,用来配置用户名和密码信息,左边为用户名,右边为密码,前面没有#号的时候才可用, 因此,该SVN配置的用户就是jack,密码是123456
[users]
jack= 123456
# sally = sallyssecret
authz 用户权限配置,用户组,哪个用户属于哪个组等等
3.基本图标
在版本库中的文件图标的下方如果有一个感叹号,则说明该文件和服务器中不同,已经被修改了,如果是+号,则说明是本地新增加的文件,而服务器上则没有,如果是一个对号,则说明和服务器内容一致。
4.打开服务器
使用命令行方式打开SVN服务器:svnserve -d -r d:\svn,后面跟的是版本库的目录地址。如果没有提示任何错误信息则说明启动成功,然后我们在另外一个文件夹或者其他地方,鼠标右键->TortoiseSVN->Repo-browser来浏览服务器上的内容,在URL中输入: svn://localhost,选择OK,如果还是没有提示任何错误,则说明成功连接到SVN服务器,只是暂时上面没有文件而已。
使用命令行方式确实不方便,因此我们可以将其注册为Windows系统服务,这样就可以设置为开机启动。
命令:sc create svnserve binpath= "D:\Program\Subversion\bin\svnserve.exe --service --root d:\svn"
值得注意的是:binpath后面的等号后面和path地址之间还有一个空格,binpath=_"D:\..,就是下划线的位置,还有,--service和--root前面的横线都是两个,如果写一个横线的话则启动服务的时候会失败,嗯,我就是写了一个结果怎么启都启不起来,后来才发现是两个横线...
需要删除的话输入命令:sc delete svnserve
还要说的一点就是,登录的时候填写用户名密码的时候很多人都习惯性的选中保存用户名和密码,下次就不用再输入了,可是如果要更换用户怎么办呢,我介绍三个方法,从1开始一个一个试。
1.鼠标右键->TortoiseSVN->settings->saved data->authentication data,点击clear清除,或者全部清除。
2.进入C:\Documents and Settings\Administrator\Application Data\Subversion\auth\svn.simple目录,删除该目录下所有文件,
3.最后的办法,也就是没办法了,重新安装乌龟吧。
5.安装MyEclipse的SVN插件
其实安装的方法网上很多,一搜一大堆,也都很简单,所以我在这里简单的介绍下网上所谓的第二种方法,首先下载插件,也就是site-1.6.x.zip包,在D:\Program\MyEclipse 6.5\eclipse\plugins文件夹中建立一个新的文件夹,名随便,我就叫svn,将site-1.6.x.zip包中的两个文件夹放到新建的svn文件夹里面,里面的xml文件就不要了。
然后打开myeclipse6.5,我是用这个版本的,其他应该一样,菜单栏中help->Software Updates->Find and Installer,弹出来的窗口中选择第二个Search for new features to install,然后next,在下一个窗口中的右边选择new local site,然后选中那个svn也就是插件的目录。确定,OK。现在就可以发现刚才的列表中多出来了个svn的记录,直接finish。之后会再弹出一个窗口,让选择要安装的内容。将其节点展开,然后全选,但是其中有一项前面有个红色的叉号,和Mylyn有关的。去掉这项就OK了,然后next,接受许可,连续next,就会到达最后一步,这个窗口可以选择插件的安装目录,可以更改,然后finish,install或者install all。重启MyEclipse。就会看到svn视图了。
三、基本操作
还记得启动服务器时指定了一个文件夹为root目录吧。我们现在就在这个目录下新建一个文件夹test。进入test文件夹。然后在这个文件夹里面创建版本库。
再提一下配置文件:
svnserve.conf中可以配置匿名用户是否可以访问
anon-access = read ->如果去掉前面的#号也就是开启则匿名用户可读
auth-access = write ->如果去掉前面的#号也就是开启则匿名用户可写
password-db = passwd ->指定用户名密码文件
authz-db = authz ->指定权限文件
主要就这几个,其中将用户名密码这项开启,如果要配置用户权限的话也要将权限文件开启
passwd
这个很简单,仿照示例添加用户,左边用户名,右边密码就行。这里我添加了一行:user1=123456
authz
和用户密码文件类似,在这里可以配置用户组,在[groups]下面仿照示例,左边是组名,右边是用户列表,中间用英文逗号分隔。再下面就是针对某一个文件目录,哪些用户或者哪些组具有哪些权限,是r、w、rw,不解释了,看示例就能看懂的。这里我不演示权限了,我就弄了一个用户,呵呵,嫌麻烦。
在MyEclipse中进入SVN Repository Exploring视图。左边空白处右键,新建版本库位置。输入:svn://localhost/test,因为启动服务器的时候已经将d:\svn设置为root目录,所以localhost/test就是d:\svn\test了呵呵
确定就行了,这里因为还没给这个版本库中提交东西,所以显示空白,但是不报错,说明操作好着呢。
选中这个资源库右键可以看到一些选项,下面分别介绍:
new->new remote folder,可以在服务器上创建一个文件夹,原因呢,我们一个项目有很多东西,总不能代码文档备份文件什么都放一起吧。我就建一个代码库文件夹,所有的代码都放这里。填写文件夹名称,选择next则是添加注释的。我就直接finish,提示输入用户名和密码,这个我有,用户名是user1,密码是123456。确定之后就能在这个版本库中看到这个文件夹了,下面我就将这个代码文件夹下的内容迁出,虽然现在什么都没的,呵呵,在代码文件夹上右键,checkout,迁出的时候可以选择版本,默认是head version,而且现在也只能选这个了,上面还什么都没的呢,取消迁出版本一,则可以选择其他版本。上面还能选择以什么方式迁出内容。剩下的操作相信大家都不陌生了.
向服务器上提交内容。首先选中项目名称,右键->team->选择在reponsitory视图中同步。现在就能发现我们建立的test项目底下出现了项目文件信息。在上面的工具栏中有几个选项,incoming mode、outgoing mode、incoming/outgoing mode,三种查看方式,查看的是我们自己的项目信息和服务器上保存文件的信息差异,比如现在选择incoming/outgoing mode,可以看到所有文件和文件夹前面都有一个向右的黑色箭头。说明这些文件是要更新到服务器上的,当提交的时候这些文件是要提交到服务器上的,当然,提交的时候也可以选择不提交某个文件。那我就直接在项目上右键,commit。打开提交窗口,写提交注释,这个一定要写,要不然这个版本做了什么操作都不知道了。下面的列表可以选择要提交的文件。选择OK,输入用户名和密码,提交。现在就可以发现不论是incoming mode还是outgoing mode都显示no changes in svn /test,说明当前项目已经更新到服务器上了,内容一样。
回到Myeclipse视图,项目中文件和文件夹前面图标变成一个黄色的小方块。说明该文件和服务器上的相同。如果我修改了一个文件,比如index.jsp。哪怕添加一个空格,保存之后这个文件前面的图标就变成有黑色背景的星号。说明该文件和已经被修改,和服务器上的文件内容不同。再提交,又回到黄色小方块了,呵呵。
我在项目中新建了一个home.jsp文件,前面的图标是一个蓝色的问号,文件上右键->team->add to version control,将新建文件这个信息提交服务器,告诉服务器我新建了一个文件,当然图标又不一样了,是一个蓝色的加号,嗯,我再将其提交,变成什么样大家知道了吧。其实在提交前可以到team synchronized视图中看下outgoing mode,出现了新建的文件,说明这些也是将要被提交到服务器上的。
在开发中,由于版本的递增,加入我自己正在编辑版本20,而别人也提交啊,所以我还在编辑20的时候服务器上的版本已经到了21或者22,那么我们就要在提交前先更新我们自己的代码再提交,否则提交不上去,从常理来说也应该经常的update,用最新的内容来操作。哦,还有,鼠标右键-team中的show history可以看到历史版本,查看某个版本都进行了什么更改等等。
同样,当我们要查看当前版本和服务器上的版本有什么不同的时候首先进入team synchronized视图中,该视图中列出本地更新的和服务器上更新的信息,比如我在index.jsp中添加了一个空格,保存之后谁知道我添加到哪一行哪一列了。不过保存之后这个文件就被标记为修改过的文件,在temp synchronized视图中选中index.jsp->右键->open in compare editor,就会打开一个窗口,左边是本地的,右边是服务器上的。有什么差别很容易看出来。
嗯,大概就这些吧,我暂时就想到了这些,呵呵。