修正 manifest kind 留痕去重范围
按 manifest 来源与资产身份去重 避免不同项目相同 ID 互相抑制日志
This commit is contained in:
@@ -1952,8 +1952,8 @@ pub(crate) fn read_manifest(path: &Path) -> Result<GameCreationAppManifest, Stri
|
||||
/// (`diagnostics/application.log`),供后续定位"谁还在写 legacy kind"。
|
||||
///
|
||||
/// 同一份 manifest 里的同一个资产每次进程只记一次:manifest 读得很频繁,不去重会把其它诊断
|
||||
/// 刷掉。去重键**含资产身份**而不是只有原值——只按原值去重会让"第二个还在写 legacy kind 的
|
||||
/// 资产"静默消失(包括另一份项目文件里的资产),那就丢了这条日志唯一的增量信息。
|
||||
/// 刷掉。去重键包含 manifest 来源与资产身份,而不是只有原值——只按原值去重会让"第二个还在
|
||||
/// 写 legacy kind 的资产"静默消失;不带来源则会让不同项目恰好复用相同 ID/路径时互相抑制。
|
||||
fn log_non_canonical_manifest_asset_kinds(payload: &str, source_path: &Path, label: &str) {
|
||||
static LOGGED_OFFENDERS: OnceLock<Mutex<std::collections::HashSet<String>>> = OnceLock::new();
|
||||
for (raw_kind, asset_id, local_path) in non_canonical_manifest_asset_kinds(payload) {
|
||||
@@ -1961,7 +1961,11 @@ fn log_non_canonical_manifest_asset_kinds(payload: &str, source_path: &Path, lab
|
||||
let first_seen = logged
|
||||
.lock()
|
||||
.map(|mut logged| {
|
||||
logged.insert(format!("{}\u{1}{asset_id}\u{1}{local_path}", raw_kind))
|
||||
logged.insert(format!(
|
||||
"{}\u{1}{}\u{1}{asset_id}\u{1}{local_path}",
|
||||
source_path.display(),
|
||||
raw_kind,
|
||||
))
|
||||
})
|
||||
.unwrap_or(true);
|
||||
if !first_seen {
|
||||
|
||||
Reference in New Issue
Block a user