SVN目录介绍以及创建分支、合并分支与切换分支操作详解

小郝不负流年
小郝不负流年   + 关注
2021-01-26 00:48:12   阅读572   评论0

本文主要讲到SVN文件夹含义和用法以及SVN如何创建分支?如何合并分支?如何解决合并产生冲突?如何切换分支等。SVN针对各种IED有很多插件,当然这些不在本篇讲解的范围,本篇以TortoiseSVN客户端来介绍SVN的使用 。

SVN几个重要文件夹说明

       我们一般习惯性在创建repository仓库后,再在刚才创建的仓库里面再创建trunk、branches、tags这三个文件夹,而不是直接将项目提交到仓库的根目录下(虽然直接将项目分享到仓库的root根目录下也是可以的,但是我们一般不这么做)。主要目的是:为了给项目各个阶段,各个版本归类、分阶段存储、并行开发。

trunk文件夹: 主干,我们一般把项目提交到此文件夹里面,在trunk中开发。

branches文件夹:分支,我们一般把那些需要打分支,但是有可能会修改的项目代码,打分支到此目录。

tags文件夹:分支,我们一般把那些阶段性(如迭代各期)的项目代码,打分支到此目录。

注:其实也不一定非要手动创建这三个目录,在我们打分支选择打到branch或tags等时,会自动在对应的repository
        仓库的根目录下创建该文件夹。

注:我们在第一次连接SVN的repository时,可以指定连接目标仓库下的不存在的文件夹,当我们第一次将项目
        team>>>share project时,将会在该仓库下自动创建URL中不存在的文件夹,并把代码放进去。

提示开发时,可以以开发trunk中的项目代码为主,当开发到某个时期(你觉得比较重要的时期)时,可以看情况将需
           要备份的文件夹(或文件)打分支到其他如branches、tags等文件夹下。

注:需要时,我们可以从SVN上同步分支中的任意时期的项目代码(注:我们当然也可以同步trunk主干下的最新的代码)。

注:有时,我们也可以在branches中开发(但是需要即时将trunk中的代码合并到branches中,但是暂时不将branches中
       合并到trunk主干上),然后开发到一定程度的时候,再将branches合并到主干trunk上。此方式,也很常用。

声明一:本次示例的软硬件环境为:Windows10、VisualSVNServer、TortoiseSVN、Eclipse。

注:VisualSVNServer主要用作SVN服务端、TortoiseSVN主要用作SVN客户端。

声明二:由于Eclipse或其它IDE开发工具的SVN插件版本不同等原因,所以这里并不以SVN插件来介绍分支的使用,
                下面是以TortoiseSVN客户端来介绍分支的使用的。

准备工作

使用VisualSVNServer创建一个本地仓库:


注:创建repository时需要先创建user,这里就不详细介绍了。

注:创建SVN仓库的方式较多,本人这里是利用VisualSVN Server创建的。

创建完成,如下图所示:

注:右键目录或仓库,会出现拷贝连接SVN的URL的选项。

往SVN中放入一些东西,方便下面讲解。

注:可以使用Eclipse的SVN插件将项目分享到SVN的仓库中,也可以使用TortoiseSVN将文件夹add到SVN的仓
       库中,还可以……这里就不再给出具体步骤了。

使用TortoiseSVN来管理SVN:

使用TortoiseSVN来查看一下SVN中的内容:


使用TortoiseSVN检出SVN中的项目:

可以看见,以检出到桌面了:

SVN打分支

方式一:先检出,再打分支

注:to path中输入或选择要打分支到哪一个文件夹下;如果是输入的是不存在的文件夹的话,那么会自动在SVN中创建
        该文件夹。

注:/branches/project20180831是指当前仓库文件夹下的branches文件夹下的project20180831文件夹。

分支创建完毕,我们再去看一下:

注:在某一个枝干上的操作,其作用范围就是其自身,并不会影响到其他枝干(注意:这里说的是一般操作,分支合并等情况除外)。

可以简单测试一下:在主干trunk上略作修改之后,提交。再用TortoiseSVN查看一下分支上的对应文件,发现是修改
                                 前的;查看主干上的对应文件,发现是修改后的。说明枝干之间不会发生干扰。

注:打分支之前,要保证本地的和服务器上是一致的,即:打分支前需要update、commit。

方式二:直接在客户端,通过Copy to的方式,打分支

选择要备份的目录:

右击 > Copy to,填写要打分支到哪里:

填写分支信息:

点击ok后,刷新一下客户端,可看见打分支成功:

合并分支

提示:合并分支即>>>选择目标分支合并到当前所处分支。

注:可以合并文件也可以合并整个文件夹,看自己的需求。

如果Test merge测试没冲突的话,是这样的:

此时直接再点击Merge合并即可。

Merge解决冲突

如果Test merge测试有冲突的话,是这样的(示例):

此时点击Merge,会出现:

点击Edit conflict来编辑冲突:

在合并后的枝干对应栏中编辑后,Save保存后关闭。

点击已解决Resolved按钮:

点击OK即可:

此时,(冲突已经解决并且)已经合并完毕了。

注:Merge合并之后,只是在本地的当前枝干发生了变化,而在服务端SVN中的当前枝干还是合并之前的;所以合并之后确
      认没问题后还需要commit到服务端SVN,以保证其他小伙伴能拿到最新的代码。

注:如果发现合并之后,还有问题,那么可以回退

切换分支


我们在打分支时,取的分支文件夹名虽然和项目名不同(如下图),但是当我们切换分支时,右击项目(Abc_SVN_Test)
之后,选择要切换到的分支时,直接选我们打分支时起的文件夹名字即可。虽然两个文件夹不同,但是切换分
        之后,还是会以Abc_SVN_Test为文件夹名,只是里面的内容变成了切换到的分支的内容

注:切换分支后,我们的update、commit等基本操作,其作用范围只是当前分支,并不会影响其他分支。

文章来源:https://blog.csdn.net/justry_deng/article/details/82259470
对我有用,我要     转载  
文章分类: 实用工具  
所属标签: SVN   合并分支  
  • 0条评论
  • 只看作者
  • 按时间|按热度
  • 由于本人多次涉及需要打印这个证明,而每次都会忘记入口,在网上各种搜索各种摸索很是浪费时间。故本次将操作流程整理记录下来,以备忘。同时也分享给大家。1、打开湖北政务服务网,地址:http://zwfw.hubei.gov.cn/s/index.html2、切换区域到“武汉市”3、在“特色服务”模块找到“(个人)武汉市社会保险公共服务平台”4、进入“(个人)武汉市社会保险公共服务平台”,登录账号密码<imgsrc="https://cdnstatic.hoscen.cn/blog/article/184053017752895488/img/497065960be44747825acb86a17483c1.png"style=
  • 如何使用postman模拟http发送xml参数报文的POST请求?1、postman工具通过安装软件或使用谷歌插件都可以,这里不再赘述。2、配置postman,选择POST,填写URL;切换到Headers,添加Content-Type:text/xml 3、切换到body,选择raw,XML,下方填写你的请求报文4、点击Send发送请求,如图可以看到响应状态、时间、结果等信息5、讲到这里就结束了,是不是学会了?快去试试吧!
  • 本文讲触发el-dialog前动态修改窗口title的方法。1、el-dialog添加title属性el-dialog :title="titleType+'菜单'" :visible.sync="dialogVisible" width="800px" >el-dialog>  2、初始化变量(titleType,名称自己定义)export&
  • 很多时候我们需要Linux服务器定时去运行一个脚本来触发一个操作,比如写缓存数据到硬盘、定时备份、定时重启服务、定期清除日志等。下面就简单讲解一下Linuxcrontab命令如何实现自动循环执行shell脚本。一、准备shell脚本比如我们准备一个hello.shvim/hcn/sh/hello.sh#!/bin/bash  DATETIME=$(date"+%Y%m%d%H%M%S") echo"hello, www.hoscen.cn,时间:${DATETIME}"  通过chmod命令赋予该脚本的执行权限chmod755hello.sh测试正确性二、开启crontab服务 linux应该都有crontab,没有的话可以安装一下:yuminstall vixie-cronyuminstall crontabsvixie-cron软
  • 标题里面的三个术语,很容易混淆,专业人员有时也会用错。本文就用图片解释它们有何区别。容错容错(faulttolerance)指的是, 发生故障时,系统还能继续运行。飞机有四个引擎,如果一个引擎坏了,剩下三个引擎,还能继续飞,这就是"容错"。同样的,汽车的一个轮子扎破了,剩下三个轮子,也还是勉强能行驶。容错的目的是,发生故障时,系统的运行水平可能有所下降,但是依然可用,不会完全失败。高可用高可用(highavailability)指的是, 系统能够比正常时间更久地保持一定的运行水平。<imgsrc="https://cdnstatic.ho
  • 一般我们在使用CDN时都设置有缓存时间,当源站资源发生变更后,如果缓存时间没到,那么用户访问的依旧是变更前的数据,虽说又拍云控制台提供了缓存刷新功能界面,但是每次都手动去刷新显示不太理想,当然又拍云也想到了这一点,提供给我们有API可以调用。本篇文章就是讲解如何接入又拍云缓存刷新API。网站免费接入又拍云CDN的方法,请查看我另外一篇文章,地址: https://www.hoscen.cn/blog/hao/articles/204022774975430656.html又拍云API文档:https://api.upyun.com/doc#/api/guide/overview看完文档,我们会知道又拍云提供有两个缓存刷新接口,一个支持通配符(但次数有限),一个是完整url刷新。同时注意调用接口时将 Token 放入 HTTP Header 中 。那么我们需要3个接口:1、获取token2、URL刷新3、缓存批量刷新详细请求参数和响应值请查看文档。话不多说,我们直接放上核心代码1、获取token2、URL刷新<img src="https://cdnstatic.hoscen.cn/blog/article/
  • 本文主要讲到SVN文件夹含义和用法以及SVN如何创建分支?如何合并分支?如何解决合并产生冲突?如何切换分支等。SVN针对各种IED有很多插件,当然这些不在本篇讲解的范围,本篇以TortoiseSVN客户端来介绍SVN的使用。SVN几个重要文件夹说明:    我们一般习惯性在创建repository仓库后,再在刚才创建的仓库里面再创建trunk、branches、tags这三个文件夹,而不是直接将项目提交到仓库的根目录下(虽然直接将项目分享到仓库的root根目录下也是可以的,但是我们一般不这么做)。主要目的是:为了给项目各个阶段,各个版本归类、分阶段存储、并行开发。trunk文件夹:主干,我们一般把项目提交到此文件夹里面,在trunk中开发。branches文件夹:分支,我们一般把那些需要打分支,但是有可能会修改的项目代码,打分支到此目录。tags文件夹:分支,我们一般把那些阶段性(如迭代各期)的项目代码,打分支到此目录。注:其实也不一定非要手动创建这三个目录,在我们打分支选择打到branch或tags等时,会自动在对应的repository    
  • 数据结构绪论

    阅读数563
    1、数据结构起源早期计算机被理解为数值计算工具,但是我们还有一些非数值的计算,因此需要一些更科学有效的手段(比如表、树、图等数据结构)的帮助来处理问题。所以数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的关系和操作等相关问题的学科。2、基本概念和术语2.1 数据数据:是描述客观事物的符号,是计算机中可以操作的对象,是能够被计算机识别,并能输入给计算机处理的符号集合。数据不仅包括整型、实型等数值类型,还包括字符、声音、图像、视频等非数值类型。我们所说的数据,其实就是符号,但是这个符号需要满足两点:能输入到计算中能被计算机程序处理2.2 数据元素数据元素,也被称为记录。是组成数据的、具有一定意义的基本单位。比如,在人类中,人就是数据元素。在禽类中,猪狗牛羊等动物就是禽类的数据元素。2.3 数据项数据项:一个数据元素可以由若干个数据项组成。比如 人这个数据元素,就可以有眼、耳、鼻等数据项,也可以有姓名、年龄等数据项。具体有哪些数据项是视你所做的系统来决定。数据项是数据不可分割的最小单位。但注意真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点。就像我们讨论一个电影,通常是讨论角色这个“数据元素”,而不是讨论角色的姓名、年龄这些“数据项”。2.4 数据对象数据对象:是性
  • 目录(Contents)教程介绍(新用户必看)IntelliJIDEA介绍本教程介绍安装、基础环境介绍(新用户必看)Windows下安装Ubuntu下安装Mac下安装安装环境总结首次运行向导安装后生成的目录说明、VM设置首次使用的基础设置介绍(新用户必看)UI界面UI主题、字体、编辑区主题、文件编码修改、乱码问题IntelliJIDEA特别地方(新用户必看)IntelliJIDEA搜索快的原因:索引IntelliJIDEA下Java文件编译方式IntelliJIDEA下项目相关特有概念说明必备的快捷键(新用户必看)IntelliJIDEA常用快捷键讲解(Win+Linux)IntelliJIDEA常用快捷键讲解(Mac)从Windows过度到Mac必备快捷键对照表最特殊的快捷键Alt+Enter介绍提高编码效率功能介绍Maven设置IntelliJIDEA配合Maven的一些要点版本控制讲解(SVN+Git)实时代码模板文件代码模板前端代码模板:Emmet特殊代码模板:PostfixCompletionDebug技巧重构技巧数据库管理工具远程调试介绍(Tomcat+Jetty)高级设置介绍IntelliJIDEA推荐设置(新人重点)IntelliJIDEA常用细节-1IntelliJI
  • 本文主要讲canonical标签的使用、canonical标签的作用、canonical标签SEO,在实践中如何正确规范的使用canonical标签。Canonical标签实际上就是一个页面内的301转向,可以帮助我们解决内容一样url不一样的网址规范化问题。和301跳转不同的是,用户并不被转向,但是对于搜索引擎来说,页面链接的权重是会被集中到代码中指明的规范化url上的。 图片来源:一灯出海对于经验丰富的SEO人员来说,canonical标签的使用一定不陌生,但最近在实践中发现不少网站的页面虽然用了canonical标签,但是使用方法却不规范。所以在这里和大家一起探讨一下canonical标签的规范使用方法,让更多的SEO人员避免走弯路。如果一个页面有多个url:https://www.hoscen.cn/blog/hao/articles/211896161185824768.htmlhttps://www.hoscen.cn/blog/hao/articles/211896161185824768/view这些url的页面内容完全一样,而我们想优化的规范化url为<ahref="https://www.hoscen.cn/blog/ha