SVN教程
1、SVN常见操作
- 发布项目(share project)
- 项目组长将本机项目第一次发布到中央仓库中
- 下载项目(检出项目check out)
- 组员将中央仓库中的项目第一次下载到本地
- 提交(commit)
- 将本地修改的内容同步到服务器中(本地 => 服务器)
- 编写完一个小功能之后、每天下班前一定要及时提交
- 更新(update)
- 将服务器中最新的代码同步到本地(服务器=>本地)
- 编写功能之前,每天上班前一定要及时更新
2、SVN安装
2.1 svn 服务端
- 下载地址:visualsvn
- 双击下载的安装程序
- 如图步骤安装
2.2 svn 客户端(小乌龟)
- 下载地址:TortoiseSVN
- 双击安装程序
- 安装步骤如图所示
3、配置
说明:服务器端需要提供IP,端口,账号,密码供客户端使用。
3.1 配置ip和端口
Server name的值可以设置为:
- 127.0.0.1(只能本地自己访问)
- 电脑用户名(只能本地自己访问)
- 电脑ip(能够通过ip访问的用户均可)
Server Port使用默认值即可
3.2 新建用户
3.3 新建分组
4、SVN的使用
4.1 新建版本库
- 选择Repositories右键,选择Create New Repostiory
- 使用默认设置,选择下一步
- 设置仓库的名字
- 创建仓库
- 设置用户访问权限
- 创建成功
4.2 导入项目到svn(import)
- 复制仓库地址
- 找到自己的项目右键,选择TorstoiseSVN,选择导入
- 选择上传的位置
- 项目导入
- 查看是否导入成
4.3 检索项目(check out)
- 复制远程仓库中项目的地址
- 在本地任意位置检出
- 导出项目到本地
- 检出成功
4.4 提交代码 (commit)
- 选择修改好的文件邮件,选择TortoiseSVN,选择加入
- 提交项目
- 查看是否更新成功
4.5 更新代码(update)
- 在项目任意位置邮件,更新
- 查看更新信息
4.6 版本冲突问题
4.6.1 版本冲突的原因
有A、b两位用户同时检索到项目的版本1,然后B先修改了文件并且提交了,然后A提交文件时会发现修改的文件与B的文件有冲突的地方,系统不知道该如何将A提交的文件更新到仓库的项目中。
4.6.2 版本冲突的现象
冲突发生时, subversion会在当前工作目录中保存所有的目标文件版本[上次更新版本、当前获取的版本(即别人提交的版本)、自己更新的版本、目标文件]。
假设文件名是 kingtuns.txt
对应的文件名分别是
- kingtuns.txt.r101 上次更新版本
- kingtuns.txt.r102 当前获取的版本
- kingtuns.txt.mine 自己更新的版本
- kingtuns.txt 目标文件
同时在目标文件中标记来自不同用户的更改。
4.6.3 场景
- A用户检出版本5的项目
- B用户检出版本5的项目
- A用户修改hello.txt文件并提交
此时仓库中的版本已经变为6
- B用户修改项目并提交
B用户将文件提交至服务器时,提示版本过期:首先应该从版本库更新版本,然后去解决冲突,冲突解决后要执行 svn resolved(解决),然后在签入到版本库。在冲突解决之后,需要使用svn resolved(解决)来告诉subversion冲突解决,这样才能提交更新
4.6.4 解决冲突的三种方法
- 放弃自己的更新,使用 svn revert(回滚),然后提交。在这种方式下不需要使用svn resolved(解决)
- 放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行 resolved filename并提交(选择文件一右键一解决)
- 手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行 resolved filename来解除冲突,最后提交。
4.6.5 解决冲突
- 在冲突的文件上右键,选择TortoiseSVN,编辑冲突
- 手动处理冲突文件
- 提交文件
4.6.6 如何降低冲突解决的复杂度
- 当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度
- 在提交时,写上明确的 message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘
- 养成良好的使用习惯每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库
5. IDEA中使用SVN
5.1 配置SVN环境
- 进入idea,选择File => New projects Setup => setting for New Project…
- 配置svn
5.2 检索项目
- 选择VCS,选择Get from Version Control…
- Version control选择Subversion,添加仓库中连接的地址
- 选择刚刚添加的连接,选择CHECK OUT
- 设置项目根路径
- 选择项目子路径
- 选择1.8 format
- 选择在当前窗口打开
- 选择ADD
- 成功后新增svn按钮
5.3 提交代码
- 修改完代码后,点击绿色对钩提交
- 添加注释信息,然后COMMIT
- 进度条显示提交进度
5.4 更新代码
- 选择蓝色箭头更新代码
- 默认即可,选择ok
- 更新成功
5.5 导入项目
- 选择VCS, 选择Import into Subversion…
- 配置远程仓库地址
- 选择刚刚添加的url,选择import
- 选择自己要上传的项目,点击ok
- 添加注释,选择ok
- 上传成功
5.6 版本冲突问题
- 如4.6中相同情况参数冲突
- 此时点击更新操作
- 手动处理异常
- 处理好冲突后选择apply
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180830.html原文链接:https://javaforall.cn