部署前的配置审阅

配置文件对比跳过键序噪声,检查实际变化

选择两份配置共同的格式,再决定差异报告可以显示哪些内容。

配置文件对比

修改前

修改后

两份内容均在当前浏览器处理,不上传输入。

输入原文仍可见。未勾选隐藏时,路径也会显示;隐藏路径还会强制遮挡整个对象或数组值,即使关闭值遮挡。

忽略键序和注释,数组按位置比较。TOML 整数与浮点区分类型;浮点按 binary64 比较,包含舍入及下溢为零的情况。

每侧最多 500,000 字符、2 MB UTF-8、50,000 节点及 100 层;最多 5,000 项差异、400 万报告字符,工作线程限时 5 秒。

输入配置,或手动执行一次对比。

差异条目

配置文件对比适合上线前核对两份设置:同一个端口移到文件末尾不应算新增,删掉的开关却不能因为空值而漏看。按解析后的节、键和数组位置检查,能把这些情况分开。

这里统一提供 TOML 对比、INI 对比和 Properties 对比。配置差异是否有意义取决于实际方言;左右两边必须选择同一种格式,工具不会猜测扩展名,也不会先做隐式格式转换。

为什么使用配置文件对比

先识别变化,再选择报告的可见内容

重排键不再掩盖改动

配置文件对比按表中的键名匹配。服务配置里的键只是换了位置,不会产生增删记录;真正删除的配置和值变化会保留下来。数组依然有顺序,不能按表的规则忽略位置。

两棵键顺序不同的配置树连接到对应节点,只有一处真正改变的节点被突出显示。

屏幕与导出保持同样的遮挡

默认遮挡每一项结果值,不依赖 password 等名称猜测。屏幕、剪贴板与下载使用同一份报告;如果节名或键名也包含私密内容,可以继续隐藏路径。

两份可见的源配置进入对比,报告中的值被遮挡后再通向复制和下载出口。

导出前需要确定的三件事

这些选项决定报告应当如何解读

01

先确定真实方言

左右共用一个格式选项。Properties 中带点的名字仍是一个平面键;INI 中的节则是容器。切换格式不会改写输入,可通过“示例”预览该格式的一对有效配置。

02

确认方向和可见范围

新增和删除都以“修改前 → 修改后”为方向。交换左右先展示替换预览;遮挡值只改变报告显示,不改变真实比较。隐藏路径还会遮挡容器内容,避免子键从值中泄露。

03

只取走最新报告

自动模式在编辑停止 350 毫秒后执行,关闭后可用按钮或 Ctrl/Cmd+Enter。编辑会立即禁用过期报告的复制与下载;替换后的一次撤销会同时恢复输入及对应报告。

保留配置中的真实区别

缺失、空值与类型不能混为一谈

表按键,数组按下标

表使用区分大小写的准确键名匹配,忽略写入顺序。数组按下标对应,插入一项可能使后续多个位置改变。缺失键、空字符串、空表和空数组分别保留。

整数位数和数值类型

TOML 有符号 64 位整数不会经过浮点转换,超过 JavaScript 安全整数范围的位数也能保留。整数 1 与浮点 1.0 属于类型变化,-0.0 与 0.0 也会区分。

适合审阅的带类型报告

每项注明新增、删除或修改,以及前后值的类型。未遮挡的值表示在 JSON 中以字符串保存,避免消费者再次舍入整数。单边增删整个容器计为一项,报告不是修改补丁。

各个出口采用统一遮挡

遮挡的是完整结果值,不只是名称看起来敏感的字段。隐藏路径时,对象和数组也整体遮挡,防止内部子键暴露;标量值仍遵循值遮挡开关。

方言、数值与报告限制

判断配置等价之前,请核对这些边界

TOML 只支持明确的比较子集
拒绝所有日期和时间、NaN、无穷大,以及超出有符号 64 位范围的整数。有限浮点按解析后的 binary64 比较:不同十进制写法可能舍入到同一值,极小非零数也可能下溢为零。这不是任意精度十进制比较。
INI 不模拟应用继承
要求显式节以及区分大小写的唯一键。不支持 DEFAULT 继承、插值、缩进数据行或多行值;键值周围空白会修剪,行内 # 和 ; 保持字面内容。0080、false 等值始终是字符串。
Properties 使用 Reader 语义
输入按 UTF-8 Reader 读取,支持 Java 转义和续行,解码后的重复键报错。带点的名字保持平面键,Spring 占位符不求值;不执行 ISO-8859-1 InputStream 解码或应用专有替换。
脱敏范围是结果,不是输入
原始编辑器和替换预览仍显示原文,报告路径默认也可见。隐藏路径会连同整个对象和数组值一起遮挡,避免子键泄露。遮挡不是加密或访问控制;主动显示的标量值仍可能包含私密文字。
比较不负责合并与改写
不审阅注释、键序或原始数字拼写;数组不识别移动,不按身份键或集合匹配。JSON 报告不是 JSON Patch,不能直接应用到配置。ENV 与 YAML 的复杂流程归各自专页处理,相关入口只在上线后可用。
超过预算就完整失败
每侧最多 500,000 字符、2 MB UTF-8、50,000 节点和 100 层;结果最多 5,000 项、400 万报告字符,工作线程限时 5 秒。解析或预算失败会禁用全部导出,不提供可能被误认完整结果的部分报告。

配置文件对比常见问题

部署审阅中容易混淆的情况

怎样找出只在一份配置中存在的键?

配置文件对比把仅在修改前存在的键记为删除,仅在修改后存在的键记为新增。空字符串仍是一个存在的值,不会被当作缺失。交换左右会反转新增与删除方向。

注释变了会影响对比结果吗?

不会。比较基于解析后的结构,注释始终不参与。如果只改注释或重排表的键,结果不会出现差异条目。本页不适合审阅注释措辞和源码排版。

对比时能区分值的类型吗?

TOML 支持子集中的字符串、布尔值、整数、有限浮点、数组和表会保留类型。1 与 1.0 不同;日期及非有限浮点会明确报错。INI 和 Properties 的值按各自方言解析后都是字符串。

键名大小写和空格是否会被忽略?

键名区分大小写,不会将 Port 和 port 合并。语法分隔空白按方言处理,例如 INI 会修剪键值两端空白;字符串里的有效空白仍参与比较。这里没有一键忽略大小写或所有空格的模式。

能直接选择两个本地文件吗?

可以在左右面板各选择一个 UTF-8 文件。覆盖前先查看预览并应用,之后可撤销一次。文件扩展名不会自动决定格式,需要自行选择两份文件共同的格式;不支持目录批量比较。

遇到了其他配置场景?

开始一次配置文件对比

通过配置文件对比确认真正的结构变化,再决定报告中哪些路径和值可以显示,核对完成后导出用于审阅。

分享前检查报告的可见范围。