Conflict resolution
[?]
May 11, 2021, 4:17 PM
TVVW53HZGYPODAXEQ4BFZNSPBOFG6JEDVOKIYIDZMWFAMOBKOR2QCDependencies
- [2]
T3S4P4ETVersion updates - [3]
QL6K2ZM3Tags - [4]
P6WE7YKLUnrecord did not check whether a file already existed before adding it back - [5]
GDDYJH7Afix encoded file add - [6]
ZSF3YFZTencoded file deletion - [7]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump - [8]
CCFJ7VO3Renaming "Record" to "Hunk" in the changes - [9]
7UPL3Y2AUnrecord: don't restore the same unrecorded file deletion twice in the inodes and tree tables - [10]
UDHP4ZVBFixing SSH asynchronicity issues - [11]
WIORLB47Version bump - [12]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [13]
NO2QPRFLAdding rollback test - [14]
VMOYG7MKtext file decoding for new files - [15]
JRSBH6HTIdentification of line numbers in replacements - [16]
IIV3EL2XCleanup, formatting, and fixing the Git feature - [17]
KJDQ2WOMFixing the parsing of section headers in the text change format - [18]
TPEH2XNB1.0.0-alpha.28, with Tokio 1.0 - [19]
X243Z3Y5Recording only the required metadata (can even be changed later!) - [20]
ENKQ3QZGForward the exit status messages from the SSH background loop to the client (solving hangs) - [21]
MDBC27ZUFixing a bug when unrecording directory deletions (the "directory marker" in the tree table was not set) - [22]
PDTUHOMVfix left over conflicts - [23]
H62VFFJECargo.nix, and solving conflicts - [24]
QNJBR73Kdon't return Result for infallible functions - [25]
VO5OQW4WRemoving anyhow in libpijul - [26]
YTQS4ES3Fixing a parsing problem (related to permissions), and the associated permissions - [27]
XR7MNOMUfile encoding in updates - [28]
6DOXSHWGCleanup, and version bump - [29]
3S6LU2U5abstract out FileMetadata (de)serialistion - [30]
ZAEUSICJFile deletions were not shown with their names in the metadata during record - [31]
QQZNSB26Permission update (after #X243) - [32]
7ZFRYVVQCargo.nix and formatting - [33]
B5Z4IMEUGenerating Cargo.nix for pijul 1.0.0-alpha.6 - [34]
W4NSLQNGmake text_encoding available to all of libpijul - [35]
JACZWIJ6Version bump - [36]
O4DNWMPDCleaunp and proofreading of libpijul::record - [37]
X7OHUPL5Fixing a bug in unrecord, and fixing the tests - [38]
TIPZ7UXNStarted fixing the tests for parallel record/output - [39]
EQLDTLXVFixing a bug with empty new files, and another one with empty replacements - [40]
NYOF5766track file encoding in the record, including change text for file adds - [41]
BT2ZHPY4Version bumps - [42]
BZCGXVS7Fixing two bugs around conflicts on the last line, where invalid patches were produced (first bug) and applied (second bug) - [43]
LLT3GY6UWhen recording, do not consider deleted filenames as current - [44]
HDGRZISMVersion updates - [45]
UM5DLRPBstore new non-UTF-8 files raw and decode to deplay the contents - [46]
33SQMZYXNew versions of dependencies - [47]
Q45QHPO4Feedback on network stuff - [48]
IYJZVLETCleaning up the literate programming bits - [49]
JMBGCWM5Fixing a zombie, probably due to the new conflict algorithm - [50]
246V5TYIdecode existing files - [51]
JRENVH5DReqwest 0.11 - [52]
UFCZKKLXUpgrading to the latest Sanakirja/Rand - [53]
GHO6DWPIRefactoring iterators - [54]
4NNR32V6conflicts - [55]
3WIQYEISFixing conflicts in Cargo.lock - [56]
YN63NUZOSanakirja 1.0 - [57]
KVBLRDOUConcatenating edits with order conflict resolutions (if relevant), and parsing the text format of the result - [58]
ADPAFSMYProper old metadata when recording - [59]
B3QWIGDEFixing the Git features with the latest Pijul (+ conflicts in Cargo.toml) - [60]
I24UEJQLVarious post-fire fixes - [61]
6HNRL5RTdetect non-utf8 text files - [62]
OCBM7IFENew release: pijul-1.0.0-alpha.8 - [63]
A3DMBJJAUpgrading the `git` subcommand to the latest Sanakirja and Libpijul - [64]
Q3GU26WDmerge with changes from sanakirja v1.1.2 - [65]
XSEODPNEFixing conflicts - [66]
XWETQ4DEUpgrading versions - [67]
WEHUTJUKLockfile update - [68]
SAGSYAPXVarious version bumps - [69]
RXNT67OTSanakirja version, and removing an unwrap - [*]
NF4O25IECleaning up useless operations in InodeMetadata
Change contents
- resurrect zombie in libpijul/src/working_copy/mod.rs at line 20
fn remove_path(&self, name: &str) -> Result<(), Self::Error>;fn rename(&self, former: &str, new: &str) -> Result<(), Self::Error>;fn set_permissions(&self, name: &str, permissions: u16) -> Result<(), Self::Error>;type Writer: std::io::Write;fn write_file(&self, file: &str) -> Result<Self::Writer, Self::Error>; - edit in libpijul/src/working_copy/mod.rs at line 26
- resurrect zombie in libpijul/src/working_copy/mod.rs at line 26[7.66]→[7.0:38](∅→∅),[7.66]→[7.0:38](∅→∅),[7.38]→[7.139:147](∅→∅),[7.139]→[7.139:147](∅→∅),[7.139]→[7.139:147](∅→∅),[7.147]→[7.39:112](∅→∅),[7.147]→[7.39:112](∅→∅),[7.112]→[7.213:233](∅→∅),[7.213]→[7.213:233](∅→∅),[7.213]→[7.213:233](∅→∅),[7.252]→[7.252:351](∅→∅),[7.252]→[7.252:351](∅→∅),[7.351]→[7.159:243](∅→∅),[7.159]→[7.159:243](∅→∅),[7.159]→[7.159:243](∅→∅),[7.243]→[7.352:444](∅→∅),[7.243]→[7.352:444](∅→∅),[7.444]→[7.113:167](∅→∅),[7.444]→[7.113:167](∅→∅),[7.167]→[7.342:560](∅→∅),[7.513]→[7.342:560](∅→∅),[7.342]→[7.342:560](∅→∅),[7.342]→[7.342:560](∅→∅),[7.560]→[7.168:245](∅→∅),[7.560]→[7.168:245](∅→∅),[7.245]→[7.636:726](∅→∅),[7.636]→[7.636:726](∅→∅),[7.636]→[7.636:726](∅→∅),[7.726]→[7.246:287](∅→∅),[7.726]→[7.246:287](∅→∅),[7.287]→[7.788:859](∅→∅),[7.586]→[7.788:859](∅→∅),[7.788]→[7.788:859](∅→∅),[7.788]→[7.788:859](∅→∅),[7.859]→[7.288:309](∅→∅),[7.859]→[7.288:309](∅→∅),[7.309]→[7.891:922](∅→∅),[7.891]→[7.891:922](∅→∅),[7.891]→[7.891:922](∅→∅),[7.922]→[7.310:327](∅→∅),[7.922]→[7.310:327](∅→∅),[7.327]→[7.950:961](∅→∅),[7.950]→[7.950:961](∅→∅),[7.950]→[7.950:961](∅→∅),[7.961]→[7.328:365](∅→∅),[7.961]→[7.328:365](∅→∅),[7.588]→[7.588:609](∅→∅),[7.588]→[7.588:609](∅→∅),[7.588]→[7.588:609](∅→∅),[7.938]→[7.938:946](∅→∅),[7.938]→[7.938:946](∅→∅)
/// Read the file into the buffer////// Returns the file's text encoding or None if it was a binary filefn decode_file(file: &str,buffer: &mut Vec<u8>,) -> Result<Option<Encoding>, Self::Error> {let mut uncoded = Vec::new();self.read_file(&file, &mut uncoded)?;let mime = tree_magic_mini::from_u8(&uncoded);debug!("mime = {:?}", mime);let encoding = if mime.starts_with("text/") {let mut detector = EncodingDetector::new();detector.feed(&uncoded, true);let encoding = detector.guess(None, true);debug!("guessed encoding = {:?}", encoding.name());let (_decoded, encoding, malformed) = encoding.decode(&uncoded);debug!("final encoding = {:?}", encoding.name());if !malformed {Some(Encoding(encoding))} else {warn!("text file was malformed");None}} else {None};buffer.append(&mut uncoded);Ok(encoding)}} - resolve order conflict in libpijul/src/working_copy/mod.rs at line 26
- replacement in libpijul/src/working_copy/mod.rs at line 30
&mut self,&self, - edit in libpijul/src/working_copy/mod.rs at line 55
- edit in libpijul/src/vertex_buffer.rs at line 139
is_zombie: bool, - edit in libpijul/src/vertex_buffer.rs at line 148
is_zombie: false, - edit in libpijul/src/vertex_buffer.rs at line 202
fn end_conflict(&mut self) -> Result<(), std::io::Error> {self.is_zombie = false;self.output_conflict_marker(END_MARKER)} - replacement in libpijul/src/vertex_buffer.rs at line 207
self.output_conflict_marker(START_MARKER)if self.is_zombie {Ok(())} else {self.is_zombie = true;self.begin_conflict()}}fn end_zombie_conflict(&mut self) -> Result<(), std::io::Error> {self.is_zombie = false;self.output_conflict_marker(END_MARKER) - replacement in libpijul/src/unrecord/working_copy.rs at line 108
let FileMetadata { basename, .. } = changeslet FileMetadata { basename, metadata, .. } = changes - replacement in libpijul/src/unrecord/working_copy.rs at line 127
if meta.is_dir() {if metadata.is_dir() { - edit in libpijul/src/unrecord/working_copy.rs at line 198
let (meta, basename) = changes - resolve order conflict in libpijul/src/unrecord/working_copy.rs at line 198[7.231483]
- file move: text.rs → text.rs.XSEODPNEN2Y2S
- edit in libpijul/src/tests/mod.rs at line 119
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - file move: data → data.XSEODPNEN2Y2S
- resolve order conflict in libpijul/src/record.rs at line 12
- edit in libpijul/src/record.rs at line 14
use std::collections::{HashMap, HashSet}; - edit in libpijul/src/record.rs at line 541
changes, - edit in libpijul/src/record.rs at line 564
changes: &C, - replacement in libpijul/src/record.rs at line 613
rec.record_deleted_file(txn, txn.graph(channel), working_copy, &full_path, *vertex)?rec.record_deleted_file(txn, txn.graph(channel), working_copy, &full_path, *vertex, changes)? - edit in libpijul/src/record.rs at line 656
/* - edit in libpijul/src/record.rs at line 664
*/ - edit in libpijul/src/record.rs at line 668[7.495974]→[6.1611:1612](∅→∅),[7.495974]→[6.1611:1612](∅→∅),[7.57327]→[7.496436:496437](∅→∅),[7.496436]→[7.496436:496437](∅→∅),[7.496437]→[7.735:790](∅→∅),[7.496437]→[7.735:790](∅→∅),[7.885]→[7.49402:49474](∅→∅),[7.496480]→[7.49402:49474](∅→∅),[7.496480]→[7.49402:49474](∅→∅),[7.496480]→[7.49402:49474](∅→∅),[7.49474]→[5.84:179](∅→∅),[7.49474]→[5.84:179](∅→∅),[5.179]→[7.886:947](∅→∅),[7.49474]→[7.886:947](∅→∅),[7.49474]→[7.886:947](∅→∅),[7.947]→[7.49475:49643](∅→∅),[7.496630]→[7.49475:49643](∅→∅),[7.496630]→[7.49475:49643](∅→∅),[7.496630]→[7.49475:49643](∅→∅)
let (contents, encoding) = if meta.is_file() {let start = ChangePosition(self.rec.contents.len().into());let encoding = working_copy.decode_file(&item.full_path, &mut self.rec.contents)?;self.rec.has_binary_files |= encoding.is_none();let end = ChangePosition(self.rec.contents.len().into());self.rec.largest_file = self.rec.largest_file.max(end.0.as_u64() - start.0.as_u64()); - resurrect zombie in libpijul/src/record.rs at line 668[7.496480]→[7.57328:57391](∅→∅),[7.496480]→[7.57328:57391](∅→∅),[7.496480]→[7.57328:57391](∅→∅),[7.57460]→[7.57460:57611](∅→∅),[7.57460]→[7.57460:57611](∅→∅),[7.57460]→[7.57460:57611](∅→∅)
let start = ChangePosition(contents.len().into());let end = ChangePosition(contents.len().into());self.largest_file = self.largest_file.max(end.0.as_u64() - start.0.as_u64()); - resolve order conflict in libpijul/src/record.rs at line 668[7.57327]
- edit in libpijul/src/record.rs at line 668
let (contents_, encoding) = if meta.is_file() { - replacement in libpijul/src/record.rs at line 670
working_copy.read_file(&item.full_path, &mut contents)?;let encoding = working_copy.decode_file(&item.full_path, &mut contents)?;self.has_binary_files |= encoding.is_none(); - edit in libpijul/src/record.rs at line 674[7.57611]→[7.57611:57650](∅→∅),[7.57611]→[7.57611:57650](∅→∅),[7.57611]→[7.57611:57650](∅→∅),[7.49750]→[7.57651:57716](∅→∅),[7.49750]→[7.57651:57716](∅→∅),[7.49750]→[7.57651:57716](∅→∅)
self.has_binary_files |= {let utf8 = std::str::from_utf8(&contents[s..e]); - resurrect zombie in libpijul/src/record.rs at line 674[7.497208]→[7.57717:57747](∅→∅),[7.497208]→[7.57717:57747](∅→∅),[7.497208]→[7.57717:57747](∅→∅),[7.57747]→[7.0:29](∅→∅),[7.497247]→[7.0:29](∅→∅),[7.497247]→[7.0:29](∅→∅),[7.57747]→[7.0:29](∅→∅)
contents.push(0);if end > start { - edit in libpijul/src/record.rs at line 699
self.actions.push(Hunk::FileAdd { - resurrect zombie in libpijul/src/record.rs at line 699[7.497912]→[6.1613:1614](∅→∅),[7.497912]→[6.1613:1614](∅→∅),[6.1687]→[6.1687:1851](∅→∅),[6.1687]→[6.1687:1851](∅→∅)
let file_meta = FileMetadata {metadata: meta,basename: item.basename.as_str(),encoding: encoding.clone(),}; - replacement in libpijul/src/record.rs at line 700
let name_start = ChangePosition(self.rec.contents.len().into());let name_start = ChangePosition(contents.len().into()); - replacement in libpijul/src/record.rs at line 706
file_meta.write(&mut self.rec.contents);let name_end = ChangePosition(self.rec.contents.len().into());self.rec.contents.push(0);file_meta.write(&mut contents);let name_end = ChangePosition(contents.len().into());contents.push(0);self.actions.push(Hunk::FileAdd { - replacement in libpijul/src/record.rs at line 729
contents,contents: contents_, - edit in libpijul/src/record.rs at line 801
|p| txn_.get_external(&p).unwrap().map(From::from), - resurrect zombie in libpijul/src/record.rs at line 801[7.6542]→[6.2008:2180](∅→∅),[7.6542]→[6.2008:2180](∅→∅),[6.2180]→[7.361:393](∅→∅),[7.361]→[7.361:393](∅→∅),[7.361]→[7.361:393](∅→∅)
let mut meta = Vec::new();let FileMetadata {basename,metadata,encoding,} = changes.get_file_meta( - edit in libpijul/src/record.rs at line 808
|p| txn_.get_external(&p).unwrap().map(From::from), - resurrect zombie in libpijul/src/record.rs at line 822
basename: basename.to_string(), - edit in libpijul/src/record.rs at line 822
former_parents.push(Parent { - edit in libpijul/src/record.rs at line 852
self.former_parents[0].encoding.clone(), - resolve order conflict in libpijul/src/record.rs at line 852[7.59226]
- edit in libpijul/src/record.rs at line 852
former_parents[0].encoding.clone(), - edit in libpijul/src/record.rs at line 926
let name_start = ChangePosition(contents.len().into());// Push the metadata, big-endian.contents.push((item.metadata.0 >> 8) as u8);contents.push((item.metadata.0 & 0xff) as u8);//contents.extend(item.basename.as_bytes());let name_end = ChangePosition(contents.len().into());contents.push(0);let name = &contents[name_start.0.as_usize()..name_end.0.as_usize()]; - resurrect zombie in libpijul/src/record.rs at line 926[7.48]→[7.451:498](∅→∅),[7.48]→[7.451:498](∅→∅),[7.571]→[7.571:653](∅→∅),[7.571]→[7.571:653](∅→∅),[7.653]→[6.2780:2820](∅→∅),[7.653]→[6.2780:2820](∅→∅),[6.2820]→[7.653:663](∅→∅),[7.653]→[7.653:663](∅→∅),[7.653]→[7.653:663](∅→∅)
let basename = item.basename.as_str();FileMetadata {metadata: item.metadata,basename,encoding: encoding.clone(),} - resolve order conflict in libpijul/src/record.rs at line 926
- replacement in libpijul/src/record.rs at line 927
let meta_start = ChangePosition(self.rec.contents.len().into());let meta_start = ChangePosition(contents.len().into()); - replacement in libpijul/src/record.rs at line 933
.write(&mut self.rec.contents);let meta_end = ChangePosition(self.rec.contents.len().into());.write(&mut contents);let meta_end = ChangePosition(contents.len().into()); - replacement in libpijul/src/record.rs at line 985
contents.truncate(name_start.0.as_usize())self.rec.contents.truncate(meta_start.0.as_usize())contents.truncate(meta_start.0.as_usize()) - replacement in libpijul/src/record.rs at line 988
contents.truncate(name_start.0.as_usize())self.rec.contents.truncate(meta_start.0.as_usize())contents.truncate(meta_start.0.as_usize()) - edit in libpijul/src/record.rs at line 1419[7.504310]→[6.2336:2383](∅→∅),[7.504310]→[6.2336:2383](∅→∅),[7.6881]→[6.2384:2423](∅→∅),[7.6881]→[6.2384:2423](∅→∅),[7.495]→[6.2424:2609](∅→∅),[7.495]→[6.2424:2609](∅→∅),[7.851]→[6.2610:2656](∅→∅),[7.851]→[6.2610:2656](∅→∅),[7.50856]→[6.2657:2690](∅→∅),[7.50856]→[6.2657:2690](∅→∅),[7.504935]→[6.2691:2712](∅→∅),[7.504935]→[6.2691:2712](∅→∅),[7.7149]→[6.2713:2742](∅→∅),[7.7149]→[6.2713:2742](∅→∅),[7.50317]→[7.58745:58794](∅→∅),[7.50317]→[7.58745:58794](∅→∅)
let mut meta = Vec::new();&mut meta,let FileMetadata { basename: name, .. } = FileMetadata::read(&mut meta);if !full_path.is_empty() {full_path.push('/');full_path.push_str(name);changes,changes: &C,changes,former_parents.push(Parent { - resolve order conflict in libpijul/src/record.rs at line 1419[7.525217]
- resurrect zombie in libpijul/src/pristine/sanakirja.rs at line 533
let mut k = match cursor.set(txn, &key, None) {Ok(Some((k, _))) => k,Ok(None) => {if let Some((k, _)) = cursor.prev(txn).map_err(|x| BlockError::Txn(x.into()))? {k} else {debug!("find_block_end, no prev");return Err(BlockError::Block { block: p });}}Err(e) => {debug!("find_block_end: BLOCK ERROR");return Err(BlockError::Txn(e.into()));} - edit in libpijul/src/pristine/sanakirja.rs at line 533
let mut cursor =btree::cursor::Cursor::new(txn, graph).map_err(|x| BlockError::Txn(x.into()))?; - edit in libpijul/src/pristine/sanakirja.rs at line 2265
let mut cursor =btree::cursor::Cursor::new(txn, graph).map_err(|x| BlockError::Txn(x.into()))?; - resolve order conflict in libpijul/src/pristine/sanakirja.rs at line 2265[3.26498]
- edit in libpijul/src/pristine/inode_metadata.rs at line 8
use byteorder::{BigEndian, ByteOrder}; - edit in libpijul/src/pristine/inode_metadata.rs at line 50[71.220][7.643614]
} - resurrect zombie in libpijul/src/diff/replace.rs at line 8
use crate::text_encoding::Encoding; - resolve order conflict in libpijul/src/diff/replace.rs at line 8
- resurrect zombie in libpijul/src/diff/replace.rs at line 83
Some(Hunk::Edit {change: c, local, ..}) => { - edit in libpijul/src/diff/replace.rs at line 83
match self.actions.pop() { - replacement in libpijul/src/diff/replace.rs at line 96
self.actions.push(Hunk::Edit { change: c, local })self.rec.actions.push(Hunk::Edit {self.actions.push(Hunk::Edit { - edit in libpijul/src/diff/replace.rs at line 361
match self.actions.pop() { - resolve order conflict in libpijul/src/diff/replace.rs at line 361[7.793237]
- resurrect zombie in libpijul/src/diff/mod.rs at line 5
use crate::text_encoding::Encoding; - resolve order conflict in libpijul/src/diff/mod.rs at line 5
- resurrect zombie in libpijul/src/diff/delete.rs at line 9
use crate::text_encoding::Encoding; - resolve order conflict in libpijul/src/diff/delete.rs at line 9
- resurrect zombie in libpijul/src/change.rs at line 1
use crate::HashSet; - resurrect zombie in libpijul/src/change.rs at line 2
use std::collections::BTreeSet; - resurrect zombie in libpijul/src/change.rs at line 3[7.831481]→[7.2946:2976](∅→∅),[7.831481]→[7.2946:2976](∅→∅),[7.2977]→[7.1442:1502](∅→∅),[7.2977]→[7.1442:1502](∅→∅)
use chrono::{DateTime, Utc};use crate::pristine::*;use crate::text_encoding::Encoding; - resolve order conflict in libpijul/src/change.rs at line 3
- edit in libpijul/src/change.rs at line 5
- resurrect zombie in libpijul/src/change/text_changes.rs at line 1
use crate::HashMap; - replacement in libpijul/src/change/text_changes.rs at line 580
Regex::new(r#"^(?P<n>\d+)\. File addition: "(?P<name>[^"]*)" in "(?P<parent>[^"]*)"(?P<perm> \S+)?"#).unwrap();Regex::new(r#"^(?P<n>\d+)\. File addition: "(?P<name>[^"]*)" in "(?P<parent>[^"]*)"(?P<perm> [^ ]+)? "(?P<encoding>[^"]*)""#).unwrap();Regex::new(r#"^(?P<n>\d+)\. File addition: "(?P<name>[^"]*)" in "(?P<parent>[^"]*)"(?P<perm> \S+)? "(?P<encoding>[^"]*)""#).unwrap(); - edit in libpijul/src/change/text_changes.rs at line 636
contents_.push((meta.0 >> 8) as u8);contents_.push((meta.0 & 0xff) as u8); - replacement in libpijul/src/change/text_changes.rs at line 643
meta.write(&mut contents_);meta.write(contents_); - edit in libpijul/src/change/text_changes.rs at line 781
contents_.push((meta.0 >> 8) as u8);contents_.push((meta.0 & 0xff) as u8); - replacement in libpijul/src/change/text_changes.rs at line 786
meta.write(&mut contents_);meta.write(contents_); - replacement in libpijul/Cargo.toml at line 119
tree_magic_mini = "1.0.0"tree_magic_mini = "3.0.0" - replacement in Cargo.lock at line 5
version = "0.14.1"version = "0.15.1" - replacement in Cargo.lock at line 7
checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"checksum = "03345e98af8f3d786b6d9f656ccfa6ac316d954e92bc4841f0bba20789d5fb5a" - replacement in Cargo.lock at line 20
version = "0.7.15"version = "0.7.18" - replacement in Cargo.lock at line 22
checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" - replacement in Cargo.lock at line 64
version = "0.3.57"version = "0.3.59" - replacement in Cargo.lock at line 66
checksum = "78ed203b9ba68b242c62b3fb7480f589dd49829be1edb3fe8fc8b4ffda2dcb8d"checksum = "4717cfcbfaa661a0fd48f8453951837ae7e8f81e481fbb136e3202d72805a744" - edit in Cargo.lock at line 69
"cc", - replacement in Cargo.lock at line 106
version = "0.19.4"version = "0.19.5" - replacement in Cargo.lock at line 108
checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81"checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321" - edit in Cargo.lock at line 117
name = "blake2b_simd"version = "0.5.11"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"dependencies = ["arrayref","arrayvec","constant_time_eq",][[package]] - replacement in Cargo.lock at line 133
version = "0.2.15"version = "0.2.16" - replacement in Cargo.lock at line 135
checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d"checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" - replacement in Cargo.lock at line 187
version = "0.1.10"version = "0.1.12" - replacement in Cargo.lock at line 189
checksum = "f866cba7596c2e70200523e399101d460514a5e59191223aa87d579e49e52025"checksum = "459978032e1aa8d5ca411ee0057ea84f98a93a648ff9f78654e53f33447cf0f9" - replacement in Cargo.lock at line 286
version = "0.9.3"version = "0.9.4" - replacement in Cargo.lock at line 288
checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"checksum = "52fb27eab85b17fbb9f6fd667089e07d6a2eb8743d02639ee7f6a7a7729c9c94" - replacement in Cargo.lock at line 299
version = "0.8.3"version = "0.8.4" - replacement in Cargo.lock at line 301
checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"checksum = "4feb231f0d4d6af81aed15928e58ecf5816aa62a2393e2c82f46973e92a9a278" - replacement in Cargo.lock at line 375
version = "3.0.1"version = "3.0.2" - replacement in Cargo.lock at line 377
checksum = "142995ed02755914747cc6ca76fc7e4583cd18578746716d0508ea6ed558b9ff"checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309" - replacement in Cargo.lock at line 394
version = "0.3.5"version = "0.3.6" - replacement in Cargo.lock at line 396
checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" - replacement in Cargo.lock at line 399
"redox_users 0.3.5","redox_users", - replacement in Cargo.lock at line 410
"redox_users 0.4.0","redox_users", - replacement in Cargo.lock at line 481
"redox_syscall 0.2.6","redox_syscall", - replacement in Cargo.lock at line 682
version = "0.23.0"version = "0.24.0" - replacement in Cargo.lock at line 684
checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189" - replacement in Cargo.lock at line 716
version = "0.3.2"version = "0.3.3" - replacement in Cargo.lock at line 718
checksum = "fc018e188373e2777d0ef2467ebff62a08e66c3f5857b23c8fbec3018210dc00"checksum = "825343c4eef0b63f541f8903f395dc5beb362a979b5799a84062527ef1e37726" - replacement in Cargo.lock at line 770
version = "0.4.1"version = "0.4.2" - replacement in Cargo.lock at line 772
checksum = "5dfb77c123b4e2f72a2069aeae0b4b4949cc7e966df277813fc16347e7549737"checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9" - replacement in Cargo.lock at line 781
version = "1.4.0"version = "1.4.1" - replacement in Cargo.lock at line 783
checksum = "4a1ce40d6fc9764887c2fdc7305c3dcc429ba11ff981c1509416afd5697e4437"checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68" - replacement in Cargo.lock at line 920
version = "0.3.50"version = "0.3.51" - replacement in Cargo.lock at line 922
checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c"checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" - replacement in Cargo.lock at line 935
version = "0.7.5"version = "0.7.6" - replacement in Cargo.lock at line 937
checksum = "21f866863575d0e1d654fbeeabdc927292fdf862873dc3c96c6f753357e13374"checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" - replacement in Cargo.lock at line 948
version = "0.2.93"version = "0.2.87"version = "0.2.94" - replacement in Cargo.lock at line 950
checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41"checksum = "265d751d31d6780a3f956bb5b8022feba2d94eeee5a84ba64f4212eedca42213"checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - edit in Cargo.lock at line 1002
"twox-hash", - edit in Cargo.lock at line 1003
"twox-hash", - replacement in Cargo.lock at line 1034
version = "1.1.2"version = "1.1.3" - replacement in Cargo.lock at line 1036
checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" - replacement in Cargo.lock at line 1052
version = "0.4.3"version = "0.4.4" - replacement in Cargo.lock at line 1054
checksum = "5a3c91c24eae6777794bb1997ad98bbb87daf92890acab859f7eaa4320333176"checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" - replacement in Cargo.lock at line 1085
version = "2.3.4"version = "2.4.0" - replacement in Cargo.lock at line 1087
checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" - replacement in Cargo.lock at line 1240
version = "0.23.0"version = "0.24.0" - replacement in Cargo.lock at line 1242
checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"checksum = "1a5b3dd1c072ee7963717671d1ca129f1048fda25edea6b752bfc71ac8854170" - edit in Cargo.lock at line 1247
version = "1.7.2" - resolve order conflict in Cargo.lock at line 1247
- edit in Cargo.lock at line 1248
checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" - replacement in Cargo.lock at line 1252
version = "0.10.33"version = "0.10.34" - replacement in Cargo.lock at line 1254
checksum = "a61075b62a23fef5a29815de7536d940aa35ce96d18ce0cc5076272db678a577"checksum = "6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8" - replacement in Cargo.lock at line 1272
version = "0.9.61"version = "0.9.63" - replacement in Cargo.lock at line 1274
checksum = "313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f"checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98" - replacement in Cargo.lock at line 1328
"redox_syscall 0.2.6","redox_syscall", - edit in Cargo.lock at line 1434
version = "0.2.5" - resolve order conflict in Cargo.lock at line 1434
- edit in Cargo.lock at line 1436
checksum = "0cf491442e4b033ed1c722cb9f0df5fcfcf4de682466c46469c36bc47dc5548a" - resolve order conflict in Cargo.lock at line 1436
- replacement in Cargo.lock at line 1598
version = "0.1.57"version = "0.2.8" - replacement in Cargo.lock at line 1600[7.1069147]→[7.1069147:1069238](∅→∅),[7.1069238]→[7.2233:2256](∅→∅),[7.2256]→[2.4130:4148](∅→∅),[2.4148]→[7.2274:2339](∅→∅),[7.9279]→[7.2274:2339](∅→∅),[7.156387]→[7.2274:2339](∅→∅),[7.2274]→[7.2274:2339](∅→∅),[7.2339]→[2.4149:4227](∅→∅)
checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"[[package]]name = "redox_syscall"version = "0.2.6"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041"checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc" - edit in Cargo.lock at line 1603[7.2447]→[7.2447:2462](∅→∅),[7.2462]→[7.1069238:1069437](∅→∅),[7.1069238]→[7.1069238:1069437](∅→∅),[7.1069437]→[7.142351:142372](∅→∅),[7.142372]→[7.2463:2488](∅→∅),[7.2488]→[7.1069469:1069485](∅→∅),[7.1069469]→[7.1069469:1069485](∅→∅)
][[package]]name = "redox_users"version = "0.3.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"dependencies = ["getrandom 0.1.16","redox_syscall 0.1.57","rust-argon2", - replacement in Cargo.lock at line 1612
"redox_syscall 0.2.6","redox_syscall", - replacement in Cargo.lock at line 1617
version = "1.4.6"version = "1.5.4" - replacement in Cargo.lock at line 1619
checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" - replacement in Cargo.lock at line 1628
version = "0.6.23"version = "0.6.25" - replacement in Cargo.lock at line 1630
checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" - edit in Cargo.lock at line 1686[7.1071022]→[7.1071022:1071043](∅→∅),[7.1071043]→[7.1126:1144](∅→∅),[7.1144]→[7.1071061:1071126](∅→∅),[7.1071061]→[7.1071061:1071126](∅→∅),[7.1071126]→[7.1145:1223](∅→∅),[7.1223]→[7.1071204:1071221](∅→∅),[7.1071204]→[7.1071204:1071221](∅→∅),[7.1071221]→[7.1224:1235](∅→∅),[7.1235]→[7.1071232:1071270](∅→∅),[7.1736]→[7.1071232:1071270](∅→∅),[7.1071232]→[7.1071232:1071270](∅→∅),[7.1071270]→[7.1236:1256](∅→∅),[7.1256]→[7.1071290:1071305](∅→∅),[7.1763]→[7.1071290:1071305](∅→∅),[7.1071290]→[7.1071290:1071305](∅→∅)
name = "rust-argon2"version = "0.8.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"dependencies = ["base64","blake2b_simd","constant_time_eq","crossbeam-utils",][[package]] - replacement in Cargo.lock at line 1687
version = "0.1.18"version = "0.1.19" - replacement in Cargo.lock at line 1689
checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"checksum = "410f7acf3cb3a44527c5d9546bad4bf4e6c460915d5f9f2fc524498bfe8f70ce" - replacement in Cargo.lock at line 1724
version = "1.2.4"version = "1.2.7" - replacement in Cargo.lock at line 1726
checksum = "c15b6118bc265955b685bee694a1f04c70dfb65344411495d88e716a2cd74a3b"checksum = "81ad8f3bbfb988e3ce4e5e73ee50f5d5a7f99a5e6dba4123b491feebb5da94d5" - edit in Cargo.lock at line 1843
[[package]]name = "static_assertions"version = "1.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - resolve order conflict in Cargo.lock at line 1845
- replacement in Cargo.lock at line 1864
version = "1.0.70"version = "1.0.72" - replacement in Cargo.lock at line 1866
checksum = "b9505f307c872bab8eb46f77ae357c8eba1fdacead58ee5a850116b1d7f82883"checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" - replacement in Cargo.lock at line 1899
"redox_syscall 0.2.6","redox_syscall", - replacement in Cargo.lock at line 1972
version = "0.32.8"version = "0.32.9" - replacement in Cargo.lock at line 1974
checksum = "139bf84fe168f1af688fb48c586b7eba59ac35684a87b52d973c7bdbc18d9b8f"checksum = "72d58952cd321b79c05e8c999b81ed6094b627157c415679fa297007a4a84da9" - replacement in Cargo.lock at line 2005
version = "0.20.3"version = "0.20.4" - replacement in Cargo.lock at line 2007
checksum = "32214c32e2327f5a7775879390b944396f23ae28f5f2a71bd2f6352dc6d10215"checksum = "ca573360d2c7d31df13c747663e69d7210aa732744feeeb808c8889f40934d02" - replacement in Cargo.lock at line 2136
version = "0.1.25"version = "0.1.26" - replacement in Cargo.lock at line 2138
checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f"checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" - replacement in Cargo.lock at line 2147
version = "0.1.17"version = "0.1.18" - replacement in Cargo.lock at line 2149
checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052" - replacement in Cargo.lock at line 2156
version = "1.0.1"version = "3.0.0" - replacement in Cargo.lock at line 2158
checksum = "287a760af78a7d607cb231500c06009ea1e0599cd57b10c32760061979bab1f1"checksum = "0687683589ce7d3912e6bf52c1620d970fbed86c27e12118ca779a3780bbf888" - edit in Cargo.lock at line 2163
"once_cell", - replacement in Cargo.lock at line 2222
version = "0.2.1"version = "0.2.2" - replacement in Cargo.lock at line 2224
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" - replacement in Cargo.lock at line 2228
version = "2.2.1"version = "2.2.2" - replacement in Cargo.lock at line 2230
checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b"checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" - replacement in Cargo.lock at line 2300
version = "0.2.73"version = "0.2.74" - replacement in Cargo.lock at line 2302
checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9"checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" - replacement in Cargo.lock at line 2312
version = "0.2.73"version = "0.2.74" - replacement in Cargo.lock at line 2314
checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae"checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" - replacement in Cargo.lock at line 2327
version = "0.4.23"version = "0.4.24" - replacement in Cargo.lock at line 2329
checksum = "81b8b767af23de6ac18bf2168b690bed2902743ddf0fb39252e36f9e2bfc63ea"checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" - replacement in Cargo.lock at line 2339
version = "0.2.73"version = "0.2.74" - replacement in Cargo.lock at line 2341
checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f"checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" - replacement in Cargo.lock at line 2349
version = "0.2.73"version = "0.2.74" - replacement in Cargo.lock at line 2351
checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c"checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" - replacement in Cargo.lock at line 2362
version = "0.2.73"version = "0.2.74" - replacement in Cargo.lock at line 2364
checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489"checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" - replacement in Cargo.lock at line 2368
version = "0.3.50"version = "0.3.51" - replacement in Cargo.lock at line 2370
checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be"checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582"