主题
为什么 Changes 视图里有很多远端变化,但打开 diff 看不到内容差异
这通常不是本地文件被误改了,而是服务器当前状态和 SuccApp 本地同步基线不一致。SuccApp 会把这类差异显示为远端变化,即使文件正文看起来没有可见差异。
先看变化方向
Changes 视图中有两类常见变化:
| 变化方向 | 对比对象 | 含义 |
|---|---|---|
| 本地变化 | 工作区文件 vs 本地 mirror | 本地文件相对上次同步基线发生了变化 |
| 远端变化 | 服务器当前内容 vs 本地 mirror | 服务器相对上次同步基线发生了变化 |
如果变化显示在远端变化分组中,说明 SuccApp 认为服务器比本地 mirror 更新。它不表示工作区文件一定被修改。
为什么 diff 可能看不到差异
SuccApp 检测远端变化时,为了避免每次刷新都下载大量服务器文件,不会对所有远端文件正文做完整内容对比。它主要根据服务器返回的资源版本、修改时间和元数据判断服务器是否变化。
因此可能出现以下情况:
- 服务器重新保存、升级或批量处理了资源,推进了文件版本或修改时间,但文件正文没有实际变化。
- 服务器只更新了
.meta中的资源标识、版本、修改人、修改时间等同步字段。 - 文件内容发生了格式等价的重写,打开文本 diff 时看不出业务差异。
- 本地 mirror 还是旧基线,服务器已经被其他人、浏览器设计器、脚本或环境同步流程更新过。
这时 Changes 视图会提示远端变化,但打开 diff 可能没有可见内容差异。
应该如何处理
建议按以下顺序处理:
- 先刷新 SuccApp 同步状态,确认变化仍然存在。
- 确认这些变化是远端变化,不是本地变化或冲突。
- 打开几个代表性文件的 diff,确认是否真的没有可见内容差异。
- 如果服务器变化需要同步到本地,执行 SuccApp: 拉取变化(英文界面为 SuccApp: Pull Changes)。
- 再次执行 SuccApp: 刷新变化(英文界面为 SuccApp: Refresh Changes),确认变化列表符合预期。
注意
不要为了清空远端变化直接强制推送。远端变化表示服务器当前状态和本地基线不一致,生产环境或多人协作场景中,应先确认变化来源。
什么时候需要继续排查
如果出现大量远端变化,且不确定来源,可以继续检查:
- 最近是否有人在浏览器设计器中保存过相关资源。
- 是否执行过元数据升级、初始化、导入导出或环境同步脚本。
- 当前工作区是否刚切换过服务器地址或连接到另一个环境。
- 是否在生产发布前还没有连接生产服务器并刷新变化。
需要定位具体原因时,可以在 Output 面板的 SuccApp 日志通道中把日志级别切到 Debug,再刷新变化。日志中会记录远端变化的路径、类型、服务器版本、mirror 版本、修改时间和修改人,便于判断是内容变化、元数据变化,还是仅同步基线落后。
更多同步模型和操作说明,请阅读修改、对比、拉取与推送。
