− moved.edges.push(NewEdge {
− previous: parent.flag() - EdgeFlags::PARENT - EdgeFlags::PSEUDO,
− flag: EdgeFlags::FOLDER | EdgeFlags::BLOCK | EdgeFlags::DELETED,
− from: grandparent.dest().to_option(),
− to: parent_dest.to_option(),
− introduced_by: Some(grandparent.introduced_by()),
− });
− // The following extra edge is meant to allow
− // detection of missing contexts in folders: indeed,
− // if we didn't have it, we couldn't tell the
− // difference between a convergent renaming or
− // deletion and a conflict between a renaming and a
− // deletion.
− if !parent_was_resurrected && !parent.flag().contains(EdgeFlags::PSEUDO) {
− moved.alive.push(NewEdge {
− previous: parent.flag() - EdgeFlags::PARENT,
− flag: EdgeFlags::FOLDER | EdgeFlags::BLOCK,
− from: parent.dest().to_option(),
− to: current_pos.inode_vertex().to_option(),
− introduced_by: Some(parent.introduced_by()),
− })
+ if !parent.flag().contains(EdgeFlags::PSEUDO) {
+ moved.edges.push(NewEdge {
+ previous: parent.flag() - EdgeFlags::PARENT - EdgeFlags::PSEUDO,
+ flag: EdgeFlags::FOLDER | EdgeFlags::BLOCK | EdgeFlags::DELETED,
+ from: grandparent.dest().to_option(),
+ to: parent_dest.to_option(),
+ introduced_by: Some(grandparent.introduced_by()),
+ });
+ // The following extra edge is meant to allow
+ // detection of missing contexts in folders: indeed,
+ // if we didn't have it, we couldn't tell the
+ // difference between a convergent renaming or
+ // deletion and a conflict between a renaming and a
+ // deletion.\
+ if !parent_was_resurrected {
+ moved.alive.push(NewEdge {
+ previous: parent.flag() - EdgeFlags::PARENT,
+ flag: EdgeFlags::FOLDER | EdgeFlags::BLOCK,
+ from: parent.dest().to_option(),
+ to: current_pos.inode_vertex().to_option(),
+ introduced_by: Some(parent.introduced_by()),
+ })
+ }