javaweb-svn-1-60

javaweb-svn-1-60

简介

版本控制系统SVN是Subversion
SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置
拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle
或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualSVN Server。还需要一个
用户的操作端,用于提交更新检出代码,常用的有idea的Svn插件,以及TortoiseSVN(小乌龟)。

就是多个开发者并行开发,各自有一个副本,解决代码汇总问题
主要三个步骤,A下载副本,A提交副本,B开始工作前同步(更新)副本
允许用户共享信息,而不会让他们互相干扰
在这里插入图片描述
复制-修改-合并方案(Subversion默认的模式)
每一个客户端读取项目配置库建立一个私有工作副本,用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,最终人工进行纠正
锁定-修改-解锁方案
在一个时间段里配置库的一个文件只允许被一个人修改
这种安全性更高,但是不符合并行开发模式,一般不用

svn架构

可以运行在linux上,也能win
svn服务器有2种运行方式:独立服务器和借助apache运行。一般独立的服务器
svn存储版本数据也有2种方式:BDB一种事务安全型表类型和FSFS一种不需要数据库的存储系统。
因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点,也最常用

客户端连接到服务器,本地命令传送到服务器,服务器将更改交给本地存储
客户端有命令行,图像化的

在这里插入图片描述
用到的工具
window下svn服务器VisualSVN,客户端工具TortoiseSVN以及idea svn插件

服务器VisualSVN下载和安装

http://subversion.apache.org/
官网,下载对应版本
可以指定服务器,与仓库位置,以及端口和http和https的访问方式
在这里插入图片描述
安装完成后进入主界面即可
在这里插入图片描述

仓库创建和操作

创建仓库

选择仓库-右键创建-
选择仓库数据存储类型
在这里插入图片描述
为仓库命名-选择仓库预设
在这里插入图片描述
访问权限范围
在这里插入图片描述

创建用户

在这里插入图片描述

创建用户组

,方便管理用户,添加
在这里插入图片描述

给用户或者用户组分配访问库的权限

进入仓库属性设置
在这里插入图片描述
分配用户或者用户组,设置仓库
不可连接,只读,读写,用户
在这里插入图片描述
在这里插入图片描述

测试连接

在这里插入图片描述
可以通过浏览器访问,然后输入用户名密码即可
也可以通过客户端访问

客户端访问

下载客户端
在这里插入图片描述
安装后重启电脑,激活一些功能组件

浏览仓库

新建一个文件夹右键
在这里插入图片描述
输入地址,用户名,密码,会自动缓存,就不必再次认证
如果想要清理可以选择settings
在这里插入图片描述
连接完毕后,就可以浏览仓库内容

在这里插入图片描述
checkout表示第一次从服务器同步信息
版本
在这里插入图片描述
在该目录下会出现.svn隐藏文件
新建一个文件,右键添加,会出现蓝色十字图标,右键commit
在这里插入图片描述
文件图标变成绿色,已经提交
如果此时有其他用户,进行了checkout操作,就会从服务器下载同步信息

更新到指定的版本

比如1 2 3 4版本,
在这里插入图片描述
寻找到需要的版本右键
在这里插入图片描述
当然也可以用另外一种方法
在这里插入图片描述
输入需要的版本号即可
在这里插入图片描述

删除文件

本地删除后commit一下
再次浏览文件看效果

导入导出

Import将本地资源导入到svn服务器
Export导出项目,和checkout的区别,它不存在.svn隐藏文件

冲突问题与解决

假设a文件为版本10
A对a修改上传,服务器新建了版本11,
B下载了版本10,修改上传,但是版本11已经存在因此上传失败
因此应该养成一个修改前同步文件的习惯
选择同步文件
在这里插入图片描述
得到四个文件
HelloWorld.java 服务器上的文件与本地文件合并
HelloWorld.java.mine 本地修改后的文件
HelloWorld.java.r4 修改前的文件
HelloWorld.java.r5 对方修改后的文件
解决冲突
右键合并的文件
在这里插入图片描述
左:服务器的,右:自己的,下:合并后的
看文件名字可以看出来
在这里插入图片描述
右键窗口
可以选择当前文件窗口为要编辑提交的窗口,(当前窗口信息,更新合并后的信息(显示顺序))
选择都会在下面的合并窗口中显示出来
在这里插入图片描述
在这里插入图片描述
选择后保存提交
在这里插入图片描述
然后再选择文件右键commit
版本自动递增12

idea配置svn,分享工程

配置svn

确认已经安装了TortoiseSVN.
注意安装时选择这个模组,确保存在svn.exe文件存在
在这里插入图片描述

在这里插入图片描述

分享工程

现在有了一个工程a
将工程提交到服务器端
在这里插入图片描述
添加仓库地址
选择仓库位置
在这里插入图片描述
选择格式
在这里插入图片描述

提交工程
出现图标
在这里插入图片描述

操作解释

在这里插入图片描述
1.Update Project 更新项目
2.Commit changes 提交项目上所有变化文件
3.Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑
的文件没有修改,则是灰色不可点击。
4.Show history 显示当前文件的历史记录
5.Revert 还原当前被修改的文件到违背修改的版本状态下
控制台信息
在这里插入图片描述
1.Local Changes 本地修改过的文件都会出现在这里
2.Repository svn仓库所有提交记录
3.Incoming 本地还没有更新的别人提交的代码

那么项目已经到仓库了吗?

其实项目还没有提交
提交
在这里插入图片描述
或者
在这里插入图片描述
右键项目
在这里插入图片描述

也可以提交单个文件
都会有历史记录
上传的时候导入的jar包也会上传到仓库

从服务器更新文件

类似于以往
在这里插入图片描述
当然所有的操作都有记录
在这里插入图片描述
提交,更新已经讲述
删除工程
移除工程idea
删除工程代码

checkout

将项目拉下来
进入idea
在这里插入图片描述
拉工程
在这里插入图片描述
得到工程,选择保存位置
在这里插入图片描述
选择版本

忽略文件

没有必要提交jar包,需要忽略
添加忽略文件,依次是
忽略的文件有哪些,查看
添加忽略的文件
在这里插入图片描述
选项依次是忽略的文件,忽略的文件夹,忽略的规则(表达式)
在这里插入图片描述

冲突问题与解决

依旧是版本不统一的问题,只是这次发生在idea上
当发生错误时
在这里插入图片描述
点击查看差别可以看到两方的详细信息
在这里插入图片描述
然后更新工程即可
在这里插入图片描述
点击管理,出现:自己的代码,原来的,服务器端的
在这里插入图片描述
点击
在这里插入图片描述
进行需要的代码合并即可
然后重新提交,逻辑和之前相同
在这里插入图片描述

svn服务器目录结构

创建仓库时有选项,可以指定仓库目录结构,预设三个文件夹
在这里插入图片描述
Trunk 主干目录,此目录下的文件为基准文件
Branches 用于开发的分支目录
Tags 用于发布的版本目录,里程碑

假设有一个项目a完成了,1.0版本,
编写代码的时候代码在主干目录,完成后可以打一个tag标记,标明完成了
假如后续需要添加其他功能,就可以在分支目录多建几个分支,标明不同的功能,更新tag
不用动主代码,由分支管理后续功能,tag作为版本进行迭代
或者将分支的代码更新到主干,tag继续迭代,保证历史版本可用,tag一般都是只读的。

如何打分支和标记

分支的定义规则: Project name+日期时间+功能点
Tags的定义规则 Project name+版本号 版本号定义为三段数字编号 xxx.xxx.xxx
将工程提交以后,主干代码
在这里插入图片描述

使用客户端进行操作
进入仓库存放主干代码的地址,checkout
在这里插入图片描述

打分支

为了避免混淆,本地建立文件夹
右键建立分支,按规则命名,保存到指定目录下即可
在这里插入图片描述
明确是谁的分支,从哪里来到哪里去
在这里插入图片描述
svn服务器下已经出现相应目录
在这里插入图片描述

打标记同理

主干和分支合并

先保证主干是最新的(先update),在分支这边进行操作
主干update一下
在这里插入图片描述
然后进入分支目录,选择merge
在这里插入图片描述

选择一个还是多个合并
在这里插入图片描述
目的是将主干合并到分支
也就是从主干来到分支去
在这里插入图片描述
合并大概率会产生冲突,需要人工重新检查

如果要将分支合并到主干呢?
分支要最新的,进入主干操作,同理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100229.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Python数据可视化教程:基于Plotly的动态可视化绘图

    Python数据可视化教程:基于Plotly的动态可视化绘图1.plotly介绍Plotly是一个非常著名且强大的开源数据可视化框架,它通过构建基于浏览器显示的web形式的可交互图表来展示信息,可创建多达数十种精美的图表和地图,下面我们以jupyternotebook为开发工具数据分析。Matplotlib存在不够美观、静态性、不易分享等缺点,限制了Python在数据可视化中的发展。为了解决这个问题,新型的动态可视化开源模块Plotly应运而生…

  • 两个向量的夹角公式_向量的夹角公式!急急急!!!「建议收藏」

    两个向量的夹角公式_向量的夹角公式!急急急!!!「建议收藏」展开全部平面向量夹角公式:cos=(ab的内积)/(|a||b|)(1)上部分:a与b的数量积坐标运算:设a=(x1,y1),b=(x2,y2),则a·b=x1x2+y1y2(2)下部分:是32313133353236313431303231363533e58685e5aeb931333431373139a与b的模的乘积:设a=(x1,y1),b=(x2,y2),则(|a||b|)=根号下(x1平…

    2022年10月21日
  • JAVA:基于ARCGIS二次开发可视化开发环境搭建

    JAVA:基于ARCGIS二次开发可视化开发环境搭建这两天为了搭建这么一个基于java的ArcGIS二次开发环境可着实花了一番心血。在网上搜索各种资料,大部分都是基于C#的,关于JAVA的很少,而且很杂乱,没有一个完整的、详细的、适合新手的这么一个教程。所以,当我在奋斗两天且重装一次系统,终于安装成功之后,写下这篇文章,让用java进行基于ArcEngine二次开发的人可以少走弯路。因为ArcEngine只能在32位系统上面运行,所以当前系统为64

  • LoadRunner11在Win10 下的激活成功教程解决办法(整合)

    LoadRunner11在Win10 下的激活成功教程解决办法(整合)1.loadrunner在win10中因管理员安装完成之后,进行激活成功教程会出现如下问题这是因为win10系统下,该程序没有用管理员方式运行2.然后我们用管理员方式运行,出现如下错误3.解决管理员组织的问题解决步骤:1》.进入”控制面板“–”用户账户“–”用户账户“,选择”更改用户账户控制设置“,选择最后一项,点击”确定“按钮,如下图:2》.按【win+R】快捷…

  • java 配置环境变量[通俗易懂]

    java 配置环境变量[通俗易懂]1.情景展示虽然,我们在实际开发过程中,无论是通过idea、eclipse、myeclipse来完成java项目的开发,通过这些工具来帮助我们实现由java文件编译成class文件,但是,一旦脱离了

  • AcceptEx浅析

    AcceptEx浅析AcceptEx函数的定义如下:BOOLAcceptEx(  SOCKETsListenSocket,       SOCKETsAcceptSocket,       PVOIDlpOutputBuffer,       DWORDdwReceiveDataLength,   DWORDdwLocalAddressLength,   DW

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号