写在前面:最近接手一个项目,这个项目集成了许多开源项目,其中我需要对其中一个开源项目进行升级操作。在此记录升级过程和心得,希望可以给各位道友提供一种思路,同时也希望道友有更好的办法能分享在评论区。
项目场景
有一个平台项目,集成了许多开源项目,假设其中有datart可视化这个开源项目,这个项目的版本为1.0.0-rc.2 Release,并且根据公司的业务实现了一些自定义内容。现在你需要将这个项目升级到1.0.0-rc.3 Release。
升级分析
- 升级有公司自定义内容,不能盲目复制粘贴。
- 刚接手项目对业务功能不是很清楚,最好能从源码知道哪些代码进行了变动。
- 对升级部分最好和Github上的升级日志能找到出处,这样后续回滚代码心里也有底。
- 一定要对项目提前做好备份,,以防万一。
升级思路
- 阅读开源项目的升级日志,了解功能变化(优化、BUG修复、功能增强)。
- 下载当前项目的源代码和升级目标版本的源代码。
- 核对官网两个版本之间源代码变化文件(作为了解,心中有数)
- 核对官网旧版本与公司项目之间的区别(了解公司变化了那些代码)
- 根据实际情况可以选择改造开源项目,或者是给公司项目做加法(我的项目配置比较多,我用的这种)。
核对源代码,如果是常规方法,将文件复制粘贴对比,这确实是庞大的工作量,望而却步。但活用工具,可事半功倍,无需多少操作。由于公司项目不宜透露,所以下面我以开源项目datart 1.0.0-rc.2 Release升级到 1.0.0-rc.3 Release版本为例,展开本文。
比对神器-Beyond Compare
关于Beyond Compare的安装,可自行百度。网上并没有多少实用的实战教程,所以本文注重实战操作,不在对安装造轮子了。进入后首页如下所示:
1. 新建会话
如下图,升级对比差异,选择创建文件夹比较差异。
2. 选择比对文件
个人习惯喜欢将左边放新版本,右边放旧版本。这个根据自己的习惯来,并没有多大的影响。这里以datart2.0和3.0版本比对为例,选择文件如下图所示:
3. 设置会话
我们进行比较的时候,一般只想关注到哪些文件内容发生了变化,例如文件大小、修改日期这些属性,很多时候不想让他们成为差异比对的目标,所以要进行设置。步骤如下:
- 点击会话
- 会话设置
- 点击比较
- 在快速测试下面取消勾选比较文件大小和比较时间戳。
4. 设置排除项
项目中的.gitee、.github之类的文件我们一般不想让他们参与比较,所以可设置排除,不参与比较。一般选择任意一边,右键选择排除,两边都可以排除掉(文件相同的情况下)。
ps:点击中间区域,会选择到两边的文件。
5. 内容比较(核心)
进行内容比较前,我们如果一个个文件打开比较,那效率简直太低。直接执行批量操作。
(1)展开全部文件夹
- 点击编辑
- 点击展开全部
展开后,所有文件清晰可见,无需手动展开,费时费力。
(2)选择所有文件
- 点击编辑
- 选择所有文件
(3)比较文件内容
- 点击操作
- 点击比较内容
- 选择基于规则的比较
- 点击开始
(4)比对结果分析
- 红色的为差异文件,可根据此推断修改。
- 紫色的为项目独有,可根据此推断新增和删除。
- 灰色文件内容相同。
差异文件分布太散,可进一步对视图设置。点击视图,选择显示差异,这样就可以看到项目中两个版本所有变化的文件了。
(5)文件内部
任意进入一个差异文件,可见对比内容差异。这个操作和GIt或SVN的功能一致,根据代码选择接受的部分,最后再ctrl+s保存即可。这样就完成了代码的更新。
6. 生成报告
- 点击会话
- 选择文件夹比较报告
- 根据需求可选择输出选项,这里选择HTML报告
- 设置标题
- 可进行浏览器浏览和另存为操作等。
生成内容如下所示:
7. 保存会话
如果下次还想查看本次的比较结果,可进行下面操作:
- 点击会话
- 选择保存会话
- 设置保存的名称和目录
- 确定即可
这个软件的功能很丰富,还有很多便捷操作,可以多多尝试和探索!