Eclipse使用 SVN 插件
插件的选择、安装
Eclipse 可以使用的 SVN 插件在市面上主要有两种:
- Subversive:Eclipse 团队开发的插件
- Subclipse:Apache 的 SVN 团队开发的插件。
博主试过了,2020-3 版的 Eclipse 没有可以用的 Subversive 版本,所以在这里选择安装 Subclipse。
Subclipse 的安装
-
在 Eclipse 中的应用市场安装:
-
搜索 Subclipse 并安装,一路默认 next,最后重启 Eclipse:
-
创建资源库位置,即配置 SVN 服务器地址:
- 切换透视图
- 创建资源库位置
- 配置 SVN 服务器的 URL 地址
- 切换透视图
-
最后我们就可以看到服务器版本库中的内容:
某些文件不纳入版本控制
在 Window->Preferences->Team->Ignored Resources->Add Pattern 进行配置:
常规的操作
基本的操作可以右键资源项目->Team->相关菜单项。
这里就演示下分享工程与检出工程。
分享工程(添加)
-
新建一个工程后,工程右键->Team->Share Project
-
版本控制工具选择 SVN
-
选个一个已有资源库或者创建新的资源库地址
-
跳转 Team Synhronize,右键工程进行提交
-
服务端便可以看到我们上传的工程
图标含义
检出
- 在 Eclipse 中执行 import 操作
- 确认资源库位置后,下一步选择工程相应的目录
- 避免和本地项目名冲突,改名后 finish 检出项目
- 工程项目上右键,将检出的项目转换为 maven 项目
解决冲突
检出后本地有两个项目,相当于多个用户,而制造冲突与前文的方法类似,这里不再赘述。
文件过时:
更新文件后出现冲突:
解决冲突
- 冲突文件->右键->Team->Edit Conficts(编辑冲突)
- 在界面编辑框中修改至满意后关闭界面(save)
- 冲突文件->右键->Team->Mark as merged(标记已合并/标记为已解决)
编辑后选择第一个,为编辑过则可以按照需要选择其他项。 - 最后提交
分支开发
概念与作用
前文介绍的不使用分支是多人之间的协作,而分支开发是团队或小组间的协作。
在版本控制过程中,可以通过多个分支同时推进项目多个不同功能的开发,任何一个分支上功能开发失败都不会对其他分支造成影响。
创建分支
相关目录
- trunk:主干
- branches:分支
- tags:存放项目开发过程中的里程碑代码
在创建分支之前,需要在版本库中创建相关目录:
创建代码分支
先创建一个工程,添加到 trunk 中
项目->右键->Team->分支/标记
一路 next->finish。
切换分支
项目->右键->Team->切换
最终:
合并分支
-
创建两个分支内容:
-
项目->右键->Team->合并
将某个分支或主线上提交的多个revision间的变化合并到另外一个分支上
分支合并到主干
Merge a range of revisions方式
主干项目右键合并,选择 Merge a range of revisions 方式
-
form 选择需要合并的分支
-
本地的主干会与该分支合并,然后将本地的主干提交
Merge two different trees方式
主干项目右键合并,选择 Merge two different trees 方式
合并的时候以选择的分支版本为主,如果选择的主干版本与分支版本有不同的地方,合并时主干部分将被删除。
- from 选择主干,需要找到最后一次同步时的版本,如果从没有同步过(第一次合并),则选择创建分支时的版本。
- to 选择要合并的分支,使用分支最新版本就行了。
由于前文主干与pay分支合并后有新的文件,所以主干需要选择之前的版本:
本地的主干会与该分支合并,然后将本地的主干提交:
主干到分支
主干与分支同步开发,需要将主干新增与修改同步到分支中来。
Merge a range of revisions方式
直接选择主干的最新版本即可:
如图,本地的pay分支同步到了主干与Skin分支合并后的文件 Skin.java 以及新建的文件 Main2.java:
Merge two different trees方式
- from 选择分支最新版本
- to 选择主干最新版本
如图,本地的skin分支同步到了主干与pay分支合并后的文件 Pay.java 以及新建的文件 Main2.java:
权限管理
之前我们有在版本库中的 svnserve.conf 文件,修改过权限,使我们匿名的进行读写。
anon-access = write
//auth-access = write
//修改为如下
anon-access = none //设置后可查看历史记录
auth-access = write
还可以加入如下配置,指明配置文件:
password-db = passwd //指定设置用户名密码文件
authz-db = authz //分配权限的配置文件
之后我们就可以通过修改 passwd 文件设置用户名密码,以及通过 authz 文件进行权限的分配:
passwd 文件
//官方的示例:
[users]
harry = harryssecret
sally = sallyssecret
//格式:用户名 = 密码
//以下用于测试
tom = 123456
jerry = 123123
authz文件
//官方的示例
[groups]
harry_and_sally = harry,sally
harry_sally_and_joe = harry,sally,&joe
//格式:用户组 = 用户,用户
//以下用于测试
mygroups = tom //用于测试
//======================================================
//官方例子
[/] //目录
harry = rw //格式:用户名 = 权限值
&joe = r //格式:@用户组 = 权限值
* = //除了授权的用户以外其他用户没有任何权限
//以下用于测试
@mygroups =rw
jerry = r
* =
保存以上的配置后,eclipse中重新连接就会需要我们输入用户名密码:
使用 jerry 用户登陆,之后我们修改任意文件进行提交,就会出现权限不够的错误:
而删除登陆过的用户信息,需要到如下目录的auth中删除相关文件:
C:\Users\MOKE\AppData\Roaming\Subversion\
最后我们测试 tom 用户,删除信息重新提交文件,会提示重新登陆:
提交成功:
历史记录
查看历史记录
项目/文件->右键->Team->显示资源历史记录(Show History):
回到某一个历史记录
转载:https://blog.csdn.net/MOKEXFDGH/article/details/106163375