游戏上线以后, 不定期的会发布一些资源的更新, 其中很多是配置表的修改, 修改的内容有多有少, 如果少量的修改还可以手动通过svn show log的方式对比两个版本之间的文件修改的话,那么一次大剂量的更新, 绝对会让从事diff工作的同学烦躁到爆炸, 说来也巧了, 我就是那个diff同学.
那么闲言碎语就到此为止,先说一下基本步骤:
1. 使用svn diff 命令列出两个版本之间修改过的全部文件,对其中的.xlsx文件(新旧两个版本)使用svn export 命令导出到本地.
2. 调用BeyondCompare执行diff操作
后续如果需要的话可以打包成zip文件,以便发给策划同学核对修改.
so,按照步骤进行说明。
步骤1:
找出svn两个版本之间修改过的文件,可以使用 svn diff 命令,该命令的含义是: 显示两个版本或路径之间的本地修改或差异(Display local changes or differences between two revisions or paths.),当然最好是查看详细的用法描述,可以使用 --help 参数来显示一个命令的详细描述,此处可以输入 svn diff --help 来显示关于diff命令的使用方法和所有参数.
显示出所有修改文件以后,需要用到另一个命令: svn export, 顾名思义就是导出文件. 形式为:
svn export 版本号 要导出文件的url 本地存储路径, 这里只是export命令的一种用法,可以通过查看详细说明来挑选出最适合你需求的用法.
结合 svn diff 和 svn export 就可以把两个版本间修改的内容全部导出到本地,为了后续对比步骤方便操作,建议把两个版本的文件分别放到两个路径下,可以以版本号为文件夹名称,此处以 folder_old 和 folder_new 为名。
步骤2:
首先, 你要安装了BeyondCompare软件,diff 神器怎么吹都行,
其次, 需要安装一个对比excel文件的工具(应该是一个file format,这里姑且叫工具吧),在BeyondCompare中打开 Tools -> File Formats, 此时可以看到有两个 MS Excel Workbooks,这是因为BeyondCompare自带一个对比excel文件的工具,但是它只能对比excel的第一个sheet页,使用场景受限,所以才需要再安装一个新的对比工具,这个工具可以以文本的方式对比所有的sheet页, 把这个Workbooks设置到另一个的前面.
BeyondCompare提供了一些命令,可以从命令行调用以方便实现自动对比. 可以参考连接 command_line_reference, 里面有详细的参数说明和一些示例. 这里使用script file 的方式进行调用,形式为: exe文件路径 txt文件路径
需要新建一txt文件,作为对比时的描述文件,该文件可以设置对比时的一些格式,比如: 文件显示方式是交叉(interleaved)还是并排(side-by-side), 显示全部行(display-all)还是只显示有改动的行(display-mismatches),或者是带上下文的方式(display-context),所有这些设置选项在刚才的命令参考链接里都有列出,可以根据需要选取.
这里采用: 并排显示文件 显示全部行 显示行号 允许单词换行 保存成html文件 使用内置的差异高亮显示方式, 如果参数比较多可以使用 & 符号换行, 所以此处txt文件中内容应该是:
上面的 %1 %2 %3 是在命令行调用时传来的参数,在附件中会有全服的批处理文件和txt文件描述,有兴趣的同学可以自行查看。
在步骤1 和 步骤2 执行完毕后,此时应该会生成一些列.htm文件,保存在指定的路径下(此处使用report文件夹),打开其中任一个htm文件,其中显示的对比界面和在BeyondCompare中的界面基本一样,对比内容完全一样。
好像不能上传附件,晚些时候再传到其他地方吧.
还有一些需要注意的地方:
1 运行 AutoCompare.bat 文件进行自动对比,双击即可运行,运行给其中的rev_new, rev_old 和 svn_url 三个字段赋值. CompareOperation.bat 和 ExportModifiedFiles.bat 是被调用的批处理文件,不能直接双击运行.
2 源码中diff结束后会生成zip压缩包,由于我的电脑上装的压缩软件是好压,因此使用压缩命令中exe文件路径可能会和你的不同, 如果不需要压缩就直接把相应部分代码注掉即可,如果需要可以根据自己电脑上的压缩软件路径和相关命令进行调用
参考链接:
https://www.scootersoftware.com/v4help/index.html?command_line_reference.html
https://www.scootersoftware.com/support.php?zz=kb_multisheetexcel