¶一、简要说明


¶二、服务端搭建
¶1. 安装
1 | #yum安装SVN |
各系统版本安装包下载:https://subversion.apache.org/packages.html
windows 系统可推荐安装 VisualSVN (如: Apache-Subversion-1.14.2.zip 或者 VisualSVN-Server-5.1.4-x64.msi)
¶2. 创建版本仓库并启动svn服务器
1 | #创建版本库目录 |
示例:
1 | #(1)Linux系统搭建svn服务器 |
注意:启动的路径决定访问地址的路径,如下:
- 如果启动的路径为
/opt,那么访问地址为:svn://ip/mysvn- 如果启动的路径为
/opt/mysvn那么访问地址为:svn://ip
¶3. 配置版本仓库访问权限
(1)授权访问配置
1 | #修改指定版本库的服务配置文件 |
修改如下相关内容:
1 | anon-access = none #匿名访问权限, read表示只读,write表示读写,none表示无权访问 |
(2)配置svn用户用户名和密码
1 | #编辑用户密码文件 |
修改如下相关内容:
1 | [users] |
(3)配置权限文件(设置svn用户和用户组的具体访问权限)
1 | #编辑权限文件 |
修改如下相关内容:
1 | [aliases] |
¶三、客户端使用
¶通过命令行使用SVN
1 | #yum安装SVN |
各系统版本安装包下载:https://subversion.apache.org/packages.html
windows 系统可推荐安装 VisualSVN (如: Apache-Subversion-1.14.2.zip 或者 VisualSVN-Server-5.1.4-x64.msi)
¶通过TortoiseSVN使用SVN
TortoiseSVN 下载地址:https://tortoisesvn.net/downloads.html
如:TortoiseSVN-1.14.5.29465-x64-svn-1.14.2.msi
TortoiseSVN 安装好后,使用操作如下:



¶通过Eclipse使用SVN
¶(1)eclipse安装svn插件
下载subclipse的site-1.10.13-1.9.x版本,并将site-1.10.13-1.9.x.zip将解压后放到***/eclipse/dropins里,并重启eclipse

¶(2)提交
首先创建好一个项目


添加svn服务仓库地址

如果是svn服务器设置允许匿名访问,那么就能成功。如果不能访问,可输入配置文件中的用户名和密码后即可完成提交。

登录提交的方式可以方便看到提交文件的具体用户

提交到svn服务器

添加提交信息

¶(3)SVN资源库研究
目的:查看svn服务器的版本仓库情况以及历史版本


¶(4)检出
目的:从svn服务器导入(下载)项目



添加svn服务仓库地址

如果是svn服务器设置允许匿名访问,那么就能成功。如果不能访问,可输入配置文件中的用户名和密码后即可完成检出。

点击finish

¶(5)解决冲突
设有两个人打开了不同的eclipse,分别对同一个版本的项目的DEMO.java进行修改
(张三)第一个人:
原版本(版本为6)
1 | package demo; |
修改:
1 | package demo; |
修改好后提交(版本变为7)
(李四)第二个人:
原版本(版本为6)
1 | package demo; |
修改:
1 | package demo; |
修改好后提交
提交后发现失败,这就是所谓的提交冲突

原因:
原因是服务端仓库的版本比李四当前的版本新,李四的当前版本已经过时了。
如何解决?
需要跟新李四的冲突文件。


编辑冲突:



修改好后ctrl + s 保存
标记已解决冲突


我们发现多出来的文件不见了,并且版本也与服务端版本一致了,也就是说可以正常提交了。

李四提交完成后打开SVN资源库研究即可发现服务端仓库的版本变成了更新的版本(原本服务端版本为7,现在变成了8)

¶(6)恢复到历史某个版本

右键某个版本,然后选择获取内容当前本地就会恢复到选择的版本

恢复后再提交的话,服务端的仓库也会"恢复到历史版本",这里打双引号的原因是服务端仓库只是恢复代码,但实际版本是再更新到了更加新的版本
¶(7)提交忽略文件设置
选择Team–> Git下面的Ignoreed Resources –>Add Pattern –>一个一个的添加输入要忽略的文件
.classpath.settings.projecttarget
最后点击Apply– >OK
¶(8)避免冲突
- 开发之前先更新,完成工作之后立即提交
- 团队合作时不同人之间应该自己修改自己的文件,尽少编辑公共文件
