Use marks for commits

andybalholm
Mar 18, 2023, 9:06 PM
OZUZ5H6DJUXJ2MEHQK6FQ7LTSPUHHGZSFZ3SPBV26A2KBE4TQKQQC

Dependencies

Change contents

  • replacement in rust/src/main.rs at line 22
    [3.1633][2.117:238]()
    let mut stream = FastExportStream {
    branch_name: matches.opt_str("b").unwrap_or(channel.to_string()),
    };
    [3.1633]
    [2.238]
    let mut stream = FastExportStream::new(matches.opt_str("b").unwrap_or(channel.to_string()));
  • replacement in rust/src/main.rs at line 25
    [3.1721][3.1678:1701](),[3.1678][3.1678:1701](),[3.1701][2.240:273]()
    for c in changes {
    stream.write_commit(&c);
    [3.1721]
    [3.939]
    for i in 0..changes.len() {
    let parent = if i == 0 {
    None
    } else {
    Some(changes[i-1].state)
    };
    stream.write_commit(&changes[i], parent);
  • edit in rust/src/fast_export.rs at line 1
    [2.313]
    [2.314]
    use std::collections::HashMap;
  • edit in rust/src/fast_export.rs at line 7
    [2.399]
    [2.399]
    max_commit_mark: i32,
    commit_marks: HashMap<libpijul::Merkle, i32>,
  • replacement in rust/src/fast_export.rs at line 13
    [2.426][2.426:475]()
    pub fn write_commit(&mut self, c: &Change) {
    [2.426]
    [2.475]
    pub fn new(branch_name: String) -> FastExportStream {
    return FastExportStream {
    branch_name,
    max_commit_mark: 0,
    commit_marks: HashMap::new(),
    };
    }
    pub fn write_commit(&mut self, c: &Change, parent: Option<libpijul::Merkle>) {
  • replacement in rust/src/fast_export.rs at line 24
    [2.535][2.535:557]()
    // TODO: mark
    [2.535]
    [2.557]
    let mark = self.commit_marks.entry(c.state).or_insert_with(|| {
    self.max_commit_mark += 1;
    self.max_commit_mark
    });
    println!("mark :{}", mark);
  • replacement in rust/src/fast_export.rs at line 41
    [2.1010][2.1010:1032]()
    // TODO: from
    [2.1010]
    [2.1032]
    match parent {
    Some(p) => {
    match self.commit_marks.get(&p) {
    Some(p_mark) => println!("from :{}", p_mark),
    None => {},
    }
    },
    None => {},
    }