deduplicate blobs

andybalholm
Mar 21, 2023, 12:13 AM
VK2ZYIOFG4GKELXWPKYWB33P3G6BEDP4CQAW6GY6YFIKTINVOSLAC

Dependencies

Change contents

  • edit in rust/src/fast_export.rs at line 14
    [2.5966]
    [3.399]
    blob_marks: HashMap<String, i32>,
  • edit in rust/src/fast_export.rs at line 26
    [2.6007]
    [3.599]
    blob_marks: HashMap::new(),
  • replacement in rust/src/fast_export.rs at line 30
    [2.6009][2.6009:6111]()
    pub fn write_commit(&mut self, c: &Change, parent: Option<libpijul::Merkle>, files: &Vec<File>) {
    [2.6009]
    [2.6111]
    pub fn write_commit(
    &mut self,
    c: &Change,
    parent: Option<libpijul::Merkle>,
    files: &Vec<File>,
    ) {
  • replacement in rust/src/fast_export.rs at line 38
    [2.6177][2.6177:6262]()
    self.max_blob_mark += 1;
    let blob_mark = self.max_blob_mark;
    [2.6177]
    [2.6262]
    let content: &[u8] = &f.content;
    let h = sha256::digest(content);
    let mut new_blob = false;
    let blob_mark = *self.blob_marks.entry(h).or_insert_with(|| {
    new_blob = true;
    self.max_blob_mark += 1;
    self.max_blob_mark
    });
  • replacement in rust/src/fast_export.rs at line 47
    [2.6302][2.6302:6515]()
    println!("blob");
    println!("mark :{}", blob_mark);
    println!("data {}", f.content.len());
    std::io::stdout().write_all(&f.content).unwrap();
    println!("");
    [2.6302]
    [2.6515]
    if new_blob {
    println!("blob");
    println!("mark :{}", blob_mark);
    println!("data {}", f.content.len());
    std::io::stdout().write_all(&f.content).unwrap();
    println!("");
    }
  • edit in rust/src/fast_export.rs at line 55
    [2.6525][3.616:617](),[3.616][3.616:617](),[3.617][2.6526:6527]()
  • edit in rust/src/fast_export.rs at line 56
    [2.6528][2.6528:6529]()
  • edit in rust/Cargo.toml at line 14
    [7.1816]
    sha256 = "1.1.2"
  • edit in rust/Cargo.lock at line 520
    [8.12778]
    [8.12778]
    name = "hex"
    version = "0.4.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
    [[package]]
  • edit in rust/Cargo.lock at line 852
    [7.1827]
    [7.1827]
    "sha256",
  • edit in rust/Cargo.lock at line 1121
    [8.27112]
    [8.27112]
    name = "sha256"
    version = "1.1.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "328169f167261957e83d82be47f9e36629e257c62308129033d7f7e7c173d180"
    dependencies = [
    "hex",
    "sha2",
    ]
    [[package]]