B:BD[
4.759605] → [
6.1223:1394]
∅:D[
6.1394] → [
5.113391:113421]
∅:D[
7.5912] → [
5.113391:113421]
∅:D[
8.62720] → [
5.113391:113421]
B:BD[
5.113391] → [
5.113391:113421]
B:BD[
5.113421] → [
9.132710:132796]
∅:D[
7.5997] → [
4.759767:759848]
∅:D[
8.62804] → [
4.759767:759848]
∅:D[
10.64035] → [
4.759767:759848]
∅:D[
5.113502] → [
4.759767:759848]
∅:D[
9.132796] → [
4.759767:759848]
B:BD[
4.759767] → [
4.759767:759848]
B:BD[
4.759848] → [
11.32111:32131]
B:BD[
11.32131] → [
2.19089:19278]
∅:D[
2.19278] → [
5.113593:113643]
∅:D[
9.132907] → [
5.113593:113643]
B:BD[
5.113593] → [
5.113593:113643]
B:BD[
5.113643] → [
12.0:79]
for name in iter_adjacent(
txn,
txn.graph(channel),
current.inode_vertex(),
flag0,
flag1,
)? {
let name = name?;
let name_dest = txn.find_block(txn.graph(channel), name.dest()).unwrap();
name_buf.clear();
debug!("getting contents {:?}", name);
changes
.get_contents(
|h| txn.get_external(&h).unwrap().map(|x| x.into()),
*name_dest,
&mut name_buf,
)
.map_err(FsErrorC::Changestore)?;
let FileMetadata { basename, .. } = FileMetadata::read(&name_buf);
if basename == c {
let age = txn
.get_changeset(txn.changes(&channel), &name.dest().change)
.unwrap();
if let Some((ref mut next, ref mut next_age)) = next {
ambiguous = true;
if age < *next_age {
*next = name_dest;
*next_age = age;
'outer: loop {
for name in iter_adjacent(
txn,
txn.graph(channel),
current.inode_vertex(),
flag0,
flag1,
)? {
let name = name?;
let name_dest = txn.find_block(txn.graph(channel), name.dest()).unwrap();
if name_dest.start == name_dest.end {
// non-null root, just continue.
current = iter_adjacent(txn, txn.graph(channel), *name_dest, flag0, flag1)?
.next()
.unwrap()?
.dest();
break 'outer
}
name_buf.clear();
debug!("getting contents {:?}", name);
changes
.get_contents(
|h| txn.get_external(&h).unwrap().map(|x| x.into()),
*name_dest,
&mut name_buf,
)
.map_err(FsErrorC::Changestore)?;
let FileMetadata { basename, .. } = FileMetadata::read(&name_buf);
if basename == c {
let age = txn
.get_changeset(txn.changes(&channel), &name.dest().change)
.unwrap();
if let Some((ref mut next, ref mut next_age)) = next {
ambiguous = true;
if age < *next_age {
*next = name_dest;
*next_age = age;
}
} else {
next = Some((name_dest, age));