说明小红书注册表不拒绝符号链接的取舍
- registry.rs 模块注释写明决定不改的理由:注册表是用户项目里的草稿,要挡的是把项目内容交给打包链的入口
This commit is contained in:
@@ -3,11 +3,15 @@
|
||||
//! 文件级细节(自动创建、严格解析、原子写入、内容指纹)都在 [`crate::export::registry`];这里
|
||||
//! 只管本目标的事:注册表 ↔ 表单的映射,以及冲突判定。
|
||||
//!
|
||||
//! 已知取舍(评审提出、当前决定不改):这里用共享的 `load_or_create` / `save`,**不**额外检查
|
||||
//! 注册表文件与 `.export` 目录是不是符号链接。也就是说,如果 `.export/xhs-minitool.json` 被换成
|
||||
//! 链接,读写会落到项目外。这与产物(`build::conclude`)、脚本(`script::find`)不同,也与图标在
|
||||
//! 预览 / 下载时走的路径门禁不同,是有意为之:那几处是「把项目内容交给打包链」的入口,这里读写
|
||||
//! 的是用户自己项目里的草稿文件,按「项目文件由用户掌控」的前提接受这个重定向。
|
||||
//! 已知取舍(评审提出):这里用共享的 `load_or_create` / `save`,**不**额外检查注册表文件与
|
||||
//! `.export` 目录是不是符号链接。也就是说,如果 `.export/xhs-minitool.json` 被换成链接,读写会
|
||||
//! 落到项目外。
|
||||
//!
|
||||
//! **决定不改,理由**:要挡的是「把项目内容交给打包链」的入口——产物(`build::conclude`)、脚本
|
||||
//! (`script::find`)和图标在预览 / 下载时走的路径门禁都拒链,因为它们把项目内容送出项目边界。
|
||||
//! 注册表读写的是用户自己项目里的一份草稿,用户既然能在磁盘上把它换成链接,就按「项目文件由用户
|
||||
//! 掌控」接受这个重定向;为它单独加守卫会改掉共享读写的契约,收益与成本不成比例。若以后注册表要
|
||||
//! 承载跨项目共享的内容,再按与那三处同口径补 `symlink_metadata` 检查。
|
||||
|
||||
use std::path::Path;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user