【自我提升】项目升级-Beyond Compare效率工具

写在前面:最近接手一个项目,这个项目集成了许多开源项目,其中我需要对其中一个开源项目进行升级操作。在此记录升级过程和心得,希望可以给各位道友提供一种思路,同时也希望道友有更好的办法能分享在评论区。

项目场景

        有一个平台项目,集成了许多开源项目,假设其中有datart可视化这个开源项目,这个项目的版本为1.0.0-rc.2 Release,并且根据公司的业务实现了一些自定义内容。现在你需要将这个项目升级到1.0.0-rc.3 Release。

升级分析

  • 升级有公司自定义内容,不能盲目复制粘贴。
  • 刚接手项目对业务功能不是很清楚,最好能从源码知道哪些代码进行了变动。
  • 对升级部分最好和Github上的升级日志能找到出处,这样后续回滚代码心里也有底。
  • 一定要对项目提前做好备份,,以防万一。

升级思路

  1. 阅读开源项目的升级日志,了解功能变化(优化、BUG修复、功能增强)。
  2. 下载当前项目的源代码和升级目标版本的源代码。
  3. 核对官网两个版本之间源代码变化文件(作为了解,心中有数)
  4. 核对官网旧版本与公司项目之间的区别(了解公司变化了那些代码)
  5. 根据实际情况可以选择改造开源项目,或者是给公司项目做加法(我的项目配置比较多,我用的这种)。

        核对源代码,如果是常规方法,将文件复制粘贴对比,这确实是庞大的工作量,望而却步。但活用工具,可事半功倍,无需多少操作。由于公司项目不宜透露,所以下面我以开源项目datart 1.0.0-rc.2 Release升级到 1.0.0-rc.3 Release版本为例,展开本文。

比对神器-Beyond Compare

        关于Beyond Compare的安装,可自行百度。网上并没有多少实用的实战教程,所以本文注重实战操作,不在对安装造轮子了。进入后首页如下所示:

1. 新建会话

        如下图,升级对比差异,选择创建文件夹比较差异。

2. 选择比对文件

        个人习惯喜欢将左边放新版本,右边放旧版本。这个根据自己的习惯来,并没有多大的影响。这里以datart2.0和3.0版本比对为例,选择文件如下图所示:

3. 设置会话

        我们进行比较的时候,一般只想关注到哪些文件内容发生了变化,例如文件大小、修改日期这些属性,很多时候不想让他们成为差异比对的目标,所以要进行设置。步骤如下:

  1. 点击会话
  2. 会话设置
  3. 点击比较
  4. 在快速测试下面取消勾选比较文件大小和比较时间戳。

4. 设置排除项

        项目中的.gitee、.github之类的文件我们一般不想让他们参与比较,所以可设置排除,不参与比较。一般选择任意一边,右键选择排除,两边都可以排除掉(文件相同的情况下)。

ps:点击中间区域,会选择到两边的文件。

5. 内容比较(核心)

        进行内容比较前,我们如果一个个文件打开比较,那效率简直太低。直接执行批量操作。

(1)展开全部文件夹

  1. 点击编辑
  2. 点击展开全部

        展开后,所有文件清晰可见,无需手动展开,费时费力。

(2)选择所有文件

  1. 点击编辑
  2. 选择所有文件

(3)比较文件内容

  1. 点击操作
  2. 点击比较内容
  3. 选择基于规则的比较
  4. 点击开始

(4)比对结果分析

  • 红色的为差异文件,可根据此推断修改。
  • 紫色的为项目独有,可根据此推断新增和删除。
  • 灰色文件内容相同。

差异文件分布太散,可进一步对视图设置。点击视图,选择显示差异,这样就可以看到项目中两个版本所有变化的文件了。

(5)文件内部

任意进入一个差异文件,可见对比内容差异。这个操作和GIt或SVN的功能一致,根据代码选择接受的部分,最后再ctrl+s保存即可。这样就完成了代码的更新。

6. 生成报告

  1. 点击会话
  2. 选择文件夹比较报告
  3. 根据需求可选择输出选项,这里选择HTML报告
  4. 设置标题
  5. 可进行浏览器浏览和另存为操作等。

生成内容如下所示:

7. 保存会话

        如果下次还想查看本次的比较结果,可进行下面操作:

  1. 点击会话
  2. 选择保存会话
  3. 设置保存的名称和目录
  4. 确定即可

这个软件的功能很丰富,还有很多便捷操作,可以多多尝试和探索!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133405.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabiitMQ消息队列系统

一、MQ 1、概念: MQ 全称为 Message Queue (消息队列),是一种应用程序对应用程序的通信方法。MQ 允许应用程序将消息写入队列,其他应用程序从队列中读取并处理这些消息,不需要它们之间直接相互联系。消息队列可用于实现异步通信…

idea Error: java: OutOfMemoryError: insufficient memory处理

IDEA设置里,修改heap size更大一点,可以解决问题

apachesolr启动带调试

这里solr.cmd报错,报错原因是java版本问题,后面发现这是因为多个java版本导致读取java_home失败, 那么我们修改solr.cmd中的JAVA_HOME为SOLR_JAVA_HOME IF DEFINED SOLR_JAVA_HOME set "JAVA_HOME%SOLR_JAVA_HOME%"环境变量将SOLR…

【Python基础】史上最全||一篇博客搞懂Python面向对象编程(封装、继承、多态)

Python面向对象编程 1.面向对象概念介绍1) 面相过程 —— 怎么做?2)面向对象 谁来做 2.类和对象2.1类2.2对象2.3类和对象的关系2.4类的设计2.5面向对象设计案例 士兵类设计2.6身份运算符 3.私有属性和私有方法3.1. 应用场景及定义方式 4.继承、多态重写父…

2014年亚太杯APMCM数学建模大赛C题公共基础课教师专业化培养方式研究求解全过程文档及程序

2014年亚太杯APMCM数学建模大赛 C题 公共基础课教师专业化培养方式研究 原题再现 近年来,世界基础工业、信息产业、服务业的跨越式发展引发了大量人才需求,导致了职业教育的飞速发展,除原有专科层次高等职业教育院校外,大量普通…

24PL-18-50-1836、12PN-4.1-50-1836比例电磁铁控制器

12PG-2.2-40-1836、24PG-8.8-40-1836、12PT-40-1836、24PT-40-1836、12PL-2.2-40-1836、24PL-8.8-40-1836、12PN-2.2-40-1836、24PN-8.8-40-1836、12PG-4.1-50-1836、24PG-18-50-1836、12PT-4.1-50-1836、24PT-18-50-1836、12PL-4.1-50-1836、24PL-18-50-1836、12PN-4.1-50-183…

基于8086汽车智能小车控制系统

**单片机设计介绍,基于8086汽车智能小车控制系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于 8086 的汽车智能小车控制系统是一种将微处理器技术应用于汽车控制的系统。下面是其主要的设计介绍: 硬…

大数据学习之Spark性能优化

文章目录 Spark三种任务提交模式宽依赖和窄依赖StageSpark Job的三种提交模式 Shuffle机制分析未优化的Hash Based Shuffle优化后的Hash Based ShuffleSort-Based Shuffle Spark之checkpointcheckpoint概述checkpoint与持久化的区别checkPoint的使用checkpoint源码分析 Spark程…

Django实战项目-学习任务系统-发送短信通知

接着上期代码内容,继续完善优化系统功能。 本次增加发送短信通知功能,学习任务系统发布的任务,为了更加及时通知到学生用户,再原有发送邮件通知基础上,再加上手机短信通知功能。 第一步:开通短信通知服务…

Docker容器中执行throttle.sh显示权限报错:RTNETLINK answers: Operation not permitted

在模拟通信环境时,我执行了一下命令: bash ./throttle.sh wan但是,出现了权限的报错:RTNETLINK answers: Operation not permitted 解决方案说简单也挺简单,只需要两步完成。但是其实又蛮繁琐,因为需要将…

正点原子嵌入式linux驱动开发——Linux 4G通信

前面学习了如何在Linux中使用有线网络或者WIFI,但是使用有线网络或者WIFI有很多限制,因为要布线,即使是WIFI也得先布线,然后再接个无线路由器。有很多场合是不方便布线的,这个时候就是4G大显身手的时候,产品…

答题小程序排位pk答题怎么玩

答题小程序排位PK答题升级赛是一个备受喜爱的功能,它不仅增加了用户之间的互动和竞争,同时也为答题小程序增添了更多的趣味性和挑战性。那么,如何参与答题小程序的排位PK答题升级赛呢?本文将详细介绍答题小程序的排位PK答题升级赛…

关于打包css找不到报错

背景&#xff1a;最近公司产品升级为v3项目&#xff0c;打包总是报css缺失 问题&#xff1a;报错提示如下&#xff0c;找不到css 出现原因分析&#xff1a;由于项目比较老&#xff0c;很多人写的&#xff0c;代码风格不统一导致的&#xff0c;比如父组件A使用<style><…

unity【动画】脚本_角色动画控制器 c#

首先创建一个代码文件夹Scripts 从人物角色Player的基类开始 创建IPlayer类 首先我们考虑到如果不挂载MonoBehaviour需要将角色设置成预制体实例化到场景上十分麻烦&#xff0c; 所以我们采用继承MonoBehaviour类的角色基类方法写代码 也就是说这个脚本直接绑定在角色物体…

CSS 背景、文本、字体

CSS背景&#xff1a; CSS背景属性用于定义HTML元素的背景。CSS属性定义背景效果&#xff1a;background-color&#xff1b;background-image&#xff1b;background-repeat&#xff1b;background-attachment&#xff1b;background-position。 background-color属性定义元素…

【验证码系列】Google验证码从数据训练到机器自动识别算法构建

文章目录 1. 写在前面2. CSCI级设计决策2.1. Google验证码突防关联2.2. Google验证码突防行为设计决策 3. Google验证码突防体系结构设计3.1. Google验证码突防部件3.1.2. Google验证码突防组成 3.2. Google验证码突防软件3.2.1. Google验证码突防软件体系结构3.2.2. Google验证…

视频集中存储/云存储EasyCVR启动后查询端口是否被占用出错,该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

2023年亚太杯APMCM数学建模大赛ABC题辅导及组队

2023年亚太杯APMCM数学建模大赛 ABC题 一元线性回归分析类 回归分析&#xff08;Regression Analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。   – 按涉及变量个数划分   • 一元回归分析   • 多元回归分析   – 按自变量和因变量之间关…

一种单总线串口通信的调试方法

单总线的优点&#xff1a; 节省IO口&#xff0c;发送时可以将单片机的RXD设置为普通IO进行软件模拟发送&#xff0c;发送完设置为串口接收。避免通信干扰&#xff0c;由于是通过IO口对三极管/MOS管进行拉高拉低&#xff0c;外部信号不易对IO口进行干扰&#xff0c;EMI&#xf…

Ubuntu20.0工作区(workspace)介绍,切换工作区方式和快捷键

Ubuntu20.0工作区&#xff08;workspace&#xff09;介绍&#xff0c;切换工作区方式和快捷键 先修改一下ubuntu截屏的快捷键查看工作区新建工作区工作区切换 先修改一下ubuntu截屏的快捷键 修改为 查看工作区 按下Super键&#xff08;即Windows键&#xff09;&#xff0c;可…