Avoid a double loop in record

pmeunier
Dec 2, 2021, 8:37 AM
TELBT3CINIPFLPR2NAW75U3T76CU5LEC2NHTXTDAM64ZKNHRVSKQC

Dependencies

  • [2] PR32ALRG prioritise moving a file over undeletion
  • [3] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [4] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [*] ADPAFSMY Proper old metadata when recording

Change contents

  • edit in libpijul/src/record.rs at line 1265
    [3.511770][2.94:1051]()
    previous_name.clear();
    let parent_dest = txn.find_block_end(channel, parent.dest()).unwrap();
    let FileMetadata {
    basename: parent_name,
    ..
    } = changes
    .get_file_meta(
    |p| txn.get_external(&p).unwrap().map(From::from),
    *parent_dest,
    &mut previous_name,
    )
    .map_err(RecordError::Changestore)?;
    debug!("parent name {:?}", parent_name);
    if parent_name != name {
    is_any_rename = true;
    }
    }
    for parent in iter_adjacent(
    txn,
    channel,
    current_pos.inode_vertex(),
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::all(),
    )? {
    let parent = parent?;
    if !parent
    .flag()
    .contains(EdgeFlags::FOLDER | EdgeFlags::PARENT)
    {
    continue;
    }
    debug!("parent = {:?}", parent);
  • edit in libpijul/src/record.rs at line 1304
    [3.513102]
    [6.263]
    if parent_name != name {
    is_any_rename = true;
    }