pijul_org / pijul

New semantics for missing context: only the first line of the context is marked as zombie and reconnected to its relatives

By pmeunier on April 12, 2018
This patch is not signed.
7PF2fUQMRrofzMrMLgYqbLv1y2S7fvmD7KNAPfW5gduMvA12D9BTSaBvW33mAS3SSD8D8BN3aupPp7NnX2z2ybLM
This patch is in the following branches:
inrepo_type
investigate_conflict
latest
master
reporoot_type
testing
In file (missing file name)
In file libpijul/src/apply






































                                files: &mut Vec<(Key<PatchId>, Edge)>) -> bool {
                            alive.push(a)
                    line_num,
                                patch_id,
                                patch_id,
                self.repair_missing_up_context(find_alive, branch, up_context, flag, patch_id, alive, files)?
                self.repair_missing_down_context(find_alive, branch, down_context, patch_id, alive)?
            let mut has_unknown_children = false;
                if k != dest || v.flag | EdgeFlags::FOLDER_EDGE > EdgeFlags::PSEUDO_EDGE | EdgeFlags::FOLDER_EDGE {
                has_unknown_children =
                    v.introduced_by != patch_id && {
                        let ext = self.external_hash(v.introduced_by).to_owned();
                        !dependencies.contains(&ext)
                    };
                debug!("child is_unknown({}): {:?} {:?}", line!(), v, has_unknown_children);
                if has_unknown_children {
                    break
            if has_unknown_children {
                self.repair_missing_up_context(find_alive, branch, dest, flag, patch_id, alive, files)?;
            let mut has_unknown_parent = false;
                has_unknown_parent = v.introduced_by != patch_id && {
                };
                debug!("parent is_unknown({}): {:?} {:?}", line!(), v, has_unknown_children);
                if has_unknown_parent {
                    break
            if has_unknown_parent {
                self.repair_missing_down_context(find_alive, branch, dest, patch_id, alive)?
        self.find_alive_ancestors(find_alive, branch, alive, files);
            for ancestor in alive.drain(..) {
                edge.introduced_by = patch_id.clone();
                debug!("repairing up context: {:?} {:?}", context, edge);
                self.put_nodes_with_rev(branch, context, edge)?;
                edge.introduced_by = patch_id.clone();
                debug!("file: repairing up context: {:?} {:?}", key, edge);
                self.put_nodes_with_rev(branch, key, edge)?;
                edge.introduced_by = patch_id.clone();
                debug!("repairing down context: {:?} {:?}", key, edge);
                self.put_nodes_with_rev(branch, context, edge)?;
In file libpijul/src
In file libpijul/src/unrecord

        for (mut k, mut v) in files.drain(..) {
In file pijul/tests/cases







    RUST_LOG="libpijul::apply=debug" pijul pull -a --repository b a 2> /tmp/log
    cd b
    pijul info --debug
    cp debug_master /tmp
    cd ..
    find b >> /tmp/log
    cp b/file /tmp/b_file