fix(tvix/castore/import): deal with entry.path() not having a parent
We got away with not properly dealing with this for the archive case, where everything is contained inside a toplevel dir, but NARs can encode a single file/symlink. Properly break if the IngestionEntry path has the ROOT as parent, and only create filling directories in the other case. Change-Id: Ib378d0d1040de7c3fe310912a0b0488c55afee83 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11590 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com>
This commit is contained in:
parent
281bd46a43
commit
75f2a1f97d
1 changed files with 10 additions and 8 deletions
|
@ -121,15 +121,17 @@ where
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
if entry.path().components().count() == 1 {
|
let parent = entry
|
||||||
break node;
|
.path()
|
||||||
}
|
.parent()
|
||||||
|
.expect("Tvix bug: got entry with root node");
|
||||||
|
|
||||||
// record node in parent directory, creating a new [Directory] if not there yet.
|
if parent == crate::Path::ROOT {
|
||||||
directories
|
break node;
|
||||||
.entry(entry.path().parent().unwrap().to_owned())
|
} else {
|
||||||
.or_default()
|
// record node in parent directory, creating a new [Directory] if not there yet.
|
||||||
.add(node);
|
directories.entry(parent.to_owned()).or_default().add(node);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
assert!(
|
assert!(
|
||||||
|
|
Loading…
Add table
Reference in a new issue