1.svn的下载地址http://subversion.apache.org/packages.html
服务端
(1)Setup-Subversion需要自己注册windows服务,通过更改配置文件来控制用户权限
(2)VisualSVN-Server图形化界面管理,集成了subversion和apache,安装后就已经注册为windows服务。
客户端
(1)TortoiseSVN客户端工具,用于提交代码,更新
总结
一般客户端选择使用TortoiseSVN,服务端选择使用VisualSVN-Server
2.VisualSVN-Serve安装时的截图
Repositories代表服务端仓库的位置,其余安装过程基本简单
3.打开安装好的svn服务端,通过右键-新建,分别创建用户,和仓库,对新创建好的firstRepository,可以右键-Properties,设置仓库访问权限
4.svn客户端的使用:
在桌面新建个文件夹,在文件夹内执行svn-check out,检出,地址从服务端仓库右键,copy url to clipboard获得,这样就将项目检出到本地
5.svn add,添加到版本库管理
svn commit提交
svn update更新服务器最新代码到本地
svn show log显示文件的历史记录,可以选择回退的版本号
若要删除test.txt文件,有2种方式
(1)svn delete,然后svn commit,
(2)直接用操作系统的delete删除,在svn commit的时候,勾选上那个test.txt文件
更新文件的名字,svn rename,然后要执行svn commit
6解决冲突
冲突产生的原因在于服务器提交了最新的代码,且与本地的有冲突,当然最新代码是别人提交的,用户aaa和用户bbb本地trunk目录下,test.text文件都是最新版本,内容如图
用户bbb更改提交到服务器,更改后的代码如下,服务器版本加1
用户aaa本地更改后如下
用户aaa再次更新时,则会冲突,多出3个文件
mime是用户aaa本地的,r2是上次更新到本地的,r3则是服务器最新的,也是用户bbb最新提交的
打开test.txt文件内容如下
<<<<<<<和>>>>>>>之间是冲突的部分,看用户aaa如何取舍了,最后还是需要svn commit
(1)如果想直接用服务器最新的代码,则直接svn resert即可
(2)如果需要更改冲突,则执行右键,Edit conficts,如下图所示,左侧是服务器最新,右侧是本地,最下面是修改冲突后,你希望保留的最终结果,可以在冲突区域,右键选择调整,待最下面的区域调整好后,点最上面的红色矩形框里的按钮即可,点完mark as resolved之后,多出的3个文件就消失了。然后就可以提交了。当然提交之前可以自己在做修改
(3)如果对冲突很熟悉,可以直接右键test.txt,然后选择resolve,然后3个文件就会消失,自己在test.txt中更改内容,提交就行了
7.从分支合并到主干
新建分支:右键trunk,Branch/tag,填好分支名,这样分支建好后,也就拥有了trunk上的文件
新创建的分支branches1,需要svn update之后才能显示,在新建的分支下添加一个branches1.txt文件,并提交到分支branches1
将branches1合并到trunk,在trunk上右键,执行merge
8(1)branches只是trunk的copy,版本号会统一递增,即以仓库名称来计算版本号
(2)eclipse下若用户a和用户b在同一个类下面各自增加了一个不同的方法,则svn会进行智能合并,不会产生冲突
(3)branches里假设有从trunk里copy的test.txt文件,若将其删除后,在新增一个内容一样的test.txt文件,则这不是同一个了,回合到主干上会产生冲突