From 5858c9313e03ab6b77010fadab60417b0b90a45a Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Sun, 03 May 2026 02:15:08 +0000 Subject: [PATCH] feat: simplify root-based paths --- --- a/crates/jrsonnet-evaluator/src/trace/mod.rs +++ b/crates/jrsonnet-evaluator/src/trace/mod.rs @@ -2,7 +2,7 @@ use std::cell::RefCell; use std::{ any::Any, - path::{Path, PathBuf}, + path::{Component, Path, PathBuf}, }; use jrsonnet_gcmodule::Trace; @@ -40,10 +40,19 @@ if from.is_relative() { return from.to_string_lossy().into_owned(); } - pathdiff::diff_paths(from, base) - .expect("base is absolute") - .to_string_lossy() - .into_owned() + let diff = pathdiff::diff_paths(from, base).expect("base is absolute"); + let parents = diff + .components() + .take_while(|c| matches!(c, Component::ParentDir)) + .count(); + let base_depth = base + .components() + .filter(|c| matches!(c, Component::Normal(_))) + .count(); + if parents > 0 && parents >= base_depth { + return from.to_string_lossy().into_owned(); + } + diff.to_string_lossy().into_owned() } } } -- gitstuff