上游更新和本地修改#
DSH Profile 把插件和配置打包,供其他人安装。安装之后,用户可以添加依赖、禁用 bundle、调整插件顺序,或者修改配置。作者发布更新时,需要保留这些本地改动。
直接用新版本替换,会丢掉本地修改;完全不更新,又拿不到作者的新版本。我提交的 0.5.0 Profile 生命周期贡献 通过区分作者基线、个人补丁与明确的启用/移除选择来处理这个问题。
升级场景示意
作者更新了一个插件,而用户已在本地禁用它。升级需要同时考虑这两项变化。
生成升级计划#
改动先保存成计划,确认后再应用,同时支持处理冲突、查看历史和恢复旧版本。计划会记录生成时的本地状态;执行前如果状态变了,就需要重新生成。
直接运行 CLI 修改命令会立即生效,除非传入 --plan 或 --dry-run。代理工具采用 plan/apply 流程。修改之前,需要确认自己使用的是哪种流程。
- 作者基线
- 比较已安装版本与上游更新的起点。
- 本地意图
- 需要在日常编辑中保留的个人补丁、额外依赖,以及明确的插件选择。
- 恢复
- 需要回退时,之前的版本及其依赖记录仍然可用。
隔离已保存的输入#
准备依赖包和调用嵌套宿主工具时,不传入已保存的输入值。只有验证、启动所选 Profile 时才单独加载,避免准备依赖的过程拿到保存的凭据。
这次改动测试了暂存失败、回滚、依赖锁复用和输入隔离。原生 Windows 环境和第三方从零安装的验收仍需后续验证。
下方附有合并记录和后续工作文档。