利用beyondcompare生成代码比对html报告

张开发
2026/5/12 10:46:51 15 分钟阅读
利用beyondcompare生成代码比对html报告
在项目开发完成后上线前需要对生产代码与投产代码做比对并生成html报告利用git加载BeyondCompare工具生成代码比对html报告源代码如下稍作修改即可。#!/bin/bashread-p请输入比对项目时间(例如:20250409) cur_timeif[-z$cur_time];thenecho输入错误请输入有效数字...exit1;fiBASE_DIR$(pwd)BCP_FILE$(pwd)/folder_compare.bcsLEFT_DIR$(pwd)/project-mainRIGHT_DIR$(pwd)/project-devREPORT_DIR$(pwd)/report/$cur_time/if[!-d$LEFT_DIR];thenmkdir-p$LEFT_DIR;echo创建main文件路径[$LEFT_DIR]成功...;fiif[!-d$RIGHT_DIR];thenmkdir-p$RIGHT_DIR;echo创建dev文件路径[$RIGHT_DIR]成功...;fiif[!-f$BCP_FILE];thentouch$BCP_FILE;echo创建文件:[$BCP_FILE]成功...;fiif[!-d$REPORT_DIR];thenmkdir-p$REPORT_DIR;echo创建文件路径[$REPORT_DIR]成功...;ficd$LEFT_DIRread-p请输入克隆代码http地址 CLONE_PATHif[-z$CLONE_PATH];thenecho输入错误请输入克隆代码http地址...exit1;figitclone$CLONE_PATHecho开始克隆代码....PROJECT_DIR$(ls-l$LEFT_DIR/|awk/^d/ {print $NF; exit})echo代码文件名称为$PROJECT_DIRif[-d$LEFT_DIR/$PROJECT_DIR];thenecho克隆代码完成项目文件夹名称:$PROJECT_DIRelseecho错误克隆代码失败ficd$RIGHT_DIRgitclone$CLONE_PATHecho开始克隆代码....PROJECT_DIR$(ls-l$RIGHT_DIR/|awk/^d/ {print $NF; exit})if[-d$RIGHT_DIR/$PROJECT_DIR];thenecho克隆代码完成项目文件夹名称:$PROJECT_DIRelseecho错误克隆代码失败ficd$PROJECT_DIRread-p请输入需要切换分支的名称 BRANCH_NAMEif[-z$BRANCH_NAME];thenecho输入错误输入需要切换分支的名称错误...exit1;figitcheckout$BRANCH_NAMELEFT_DIR$LEFT_DIR/$PROJECT_DIR/RIGHT_DIR$RIGHT_DIR/$PROJECT_DIR/cd$BASE_DIR##需要排除的文件夹EXCLUDE_DIRS(liblogslogtarget.ideadist.gitgittestimage.gitignore);##需要排除的文件EXCLUDE_FILES(*.log*.iml*.git**.tmp*.zip*.idea*.class.gitignoreLICENSE)BEYOND_COMPARE/D/develop/Beyond Compare 4/Beyond Compare 5/BCompare.exeif[!-f$BEYOND_COMPARE];thenecho错误比较工具Beyond Compare [$BEYOND_COMPARE] 不存在...;exit1;fi# 构建过滤条件FILTER_ITEMfordirin${EXCLUDE_DIRS[]};doFILTER_ITEM$FILTER_ITEM-$dir/;doneforfilein${EXCLUDE_FILES[]};doFILTER_ITEM$FILTER_ITEM-$file;done# 去掉开头的空格和分号FILTER_ITEM${FILTER_ITEM#}# 路径转换LEFT_FILE_PATH$(cygpath-m$LEFT_DIR)RIGHT_FILE_PATH$(cygpath-m$RIGHT_DIR)REPORT_DIFF_FILE$(cygpath-m$REPORT_DIR/folder_diff.html)REPORT_SUMM_FILE$(cygpath-m$REPORT_DIR/folder_summary.html)## 写入.bcs脚本catfolder_compare.bcsEOF criteria binary load $LEFT_FILE_PATH $RIGHT_FILE_PATH expand all filter $FILTER_ITEM select all.diff.files left.orphan right.orphan folder-report layout:side-by-side output-to:$REPORT_SUMM_FILE output-options:html-color text-report layout:side-by-side output-to:$REPORT_DIFF_FILE output-options:html-color EOFecho正在生成报告已排除指定文件和文件夹echo使用脚本:$BCP_FILE$BEYOND_COMPAREfolder_compare.bcs/dev/null21if[-f$REPORT_DIFF_FILE];thenecho[$REPORT_DIFF_FILE] 报告已经生成$(cygpath-w$REPORT_DIFF_FILE)elseecho错误[$REPORT_DIFF_FILE]报告生成失败...exit1;fi

更多文章