Sanakirja 1.0
[?]
Feb 25, 2021, 8:49 PM
YN63NUZO4LVJ7XPMURDULTXBVJKW5MVCTZ24R7Z52QMHO3HPDUVQCDependencies
- [2]
GMGTWOWOFixing a corruption error in channel rename (the channel was being deallocated in Sanakirja, but still referenced by the transaction) - [3]
SPA2OL5Ikeep-changes feature (default) to avoid deleting problematic changes - [4]
ZXCRG5RPIt seems change inverses will need a little more work - [5]
ZAEUSICJFile deletions were not shown with their names in the metadata during record - [6]
NO2QPRFLAdding rollback test - [7]
CZX6TRWRFixing a shortcut to detect alive children without iterating - [8]
2BKYJ2JMFixing a bug introduced by the recent refactoring - [9]
JACZYXK4Fixing a bug in unrecord - [10]
U4F5G3AUDo not delete unknown files during a reset - [11]
EGSVRZJVAvoid converting between base32 and hash in pijul::commands::unrecord - [12]
ZZXBHCN3fixing the protocol - [13]
KWAGWB73Adding extra dependencies from the config file - [14]
44BN7FWSDo not output files introduced by patches that were not applied during a push - [15]
LGEJSLTYFixing output (including its uses in reset and pull) - [16]
JGJOYE3Jdocument ignore capability in pijul add - [17]
EQLDTLXVFixing a bug with empty new files, and another one with empty replacements - [18]
OCBM7IFENew release: pijul-1.0.0-alpha.8 - [19]
QE64ATLZFixing asynchronicity problems in SSH - [20]
6YMDOZIBRefactoring apply - [21]
A3DMBJJAUpgrading the `git` subcommand to the latest Sanakirja and Libpijul - [22]
VYHHOEYHVersions and formatting - [23]
XWETQ4DEUpgrading versions - [24]
367UBQ6KForwarding SSH stderr, and progress bar for push - [25]
IYJZVLETCleaning up the literate programming bits - [26]
GVQ7YSEDChecking for dependencies even for a local change - [27]
JACZWIJ6Version bump - [28]
KTTKF3RWLocking stderr and the progress bar in SSH - [29]
Q45QHPO4Feedback on network stuff - [30]
33ANCTMFFixing a panic when decoding a bad ChangeId - [31]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump - [32]
2K7JLB4ZNo pager on Windows - [33]
GLMOA3PFMore edges in "credit" - [34]
3KRGVQFUDo not update the mtime of unmodified files - [35]
UZZQ3VIAlorri needs to be told which Nix shell definition to use - [36]
65S67T3EParsing \\ for empty additions (rare problem) - [37]
WIORLB47Version bump - [38]
6RVT5X4LCurrent state: return zero instead of an Option if there is no change on the channel - [39]
BAUL3WR2Format, versions, README - [40]
7PM25EXLRecursive apply was written a little too fast… - [41]
NLGQAH4HCredit and reset relative to current directory instead of the root - [42]
XL6Y64UPFixing a panic when iterating over the basenames of a file - [43]
L4JXJHWXpijul/*: reorganize imports and remove extern crate - [44]
H565UUPCUse correct pattern for workspace interdependencies - [45]
SAGSYAPXVarious version bumps - [46]
HMMMKONLFixing alive vertices - [47]
BZCGXVS7Fixing two bugs around conflicts on the last line, where invalid patches were produced (first bug) and applied (second bug) - [48]
PSKXR4QEDo not load the entire change in memory in log - [49]
K6GWUOD5Styling progress bars - [50]
B3QWIGDEFixing the Git features with the latest Pijul (+ conflicts in Cargo.toml) - [51]
TZVUNELWDocumentation comments - [52]
3YDPHBANaddress non-controversial clippy lints - [53]
G6S6PWZEDo not touch the channel if this is a partial record - [54]
JL4WKA5PImplement the Sanakirja concurrency model in a cross-process way - [55]
WKX5S4Z4remove unneccesary explicit lifetimes - [56]
2GQCLJZGDisplaying errors returned by the server in the protocol - [57]
VXZNQQHCIf an existing file is moved to a new directory that is deleted before the record, record the deletion - [58]
UDHP4ZVBFixing SSH asynchronicity issues - [59]
BXD3IQYNFixing --features git - [60]
33SQMZYXNew versions of dependencies - [61]
BE7GUCI2Completing dependencies only with changes the remote does not have - [62]
PJ7T2VFLDo not hang on locked repositories - [63]
7FFFKQZUadd 'Default' implementations - [64]
64M73LNCHide `pijul lock` and avoid panics when used improperly - [65]
7T5STZYBNow you can `pijul remove` the root of a repository - [66]
CCFJ7VO3Renaming "Record" to "Hunk" in the changes - [67]
5DVRL6MFHard-unrecord - [68]
ZRUPLBBTColours in diff and change: separating concerns and dependencies - [69]
BD5PC25ADeleting conflict resolution vertices when the sides are deleted - [70]
L5PHFTIEMinor simplification - [71]
H62VFFJECargo.nix, and solving conflicts - [72]
4H2XTVJ2Fix some mistakes in the docs - [73]
I2D35LLFMore accurate recording of modification time - [74]
UNZXTNSJChange text format: order dependencies in the order they were on the channel at record time - [75]
ENKQ3QZGForward the exit status messages from the SSH background loop to the client (solving hangs) - [76]
NA5I4WYNFixing the inverse of conflict resolutions - [77]
PCEJFKFXProgress bar for upload and apply - [78]
H23LO7U7a few more clippy lints addressed - [79]
JRENVH5DReqwest 0.11 - [80]
6T5ULULMFixing conflicts with the changes from discussion #143 - [81]
IM6UFPOZFixing a test related to the tree/revtree tables - [82]
NE4A4WUKParsing of file addition metadata - [83]
BT2ZHPY4Version bumps - [84]
ATZ3BWSEFixing the double-deletion of repairs for folder edges - [85]
6WFOU7UXDo a DFS on dependencies to complete the list - [86]
KD4JIMAEListing the working copy in alphabetical order (instead of reverse alphabetical) - [87]
3M7WBE24Re-adding anyhow in the tests of libpijul - [88]
B5Z4IMEUGenerating Cargo.nix for pijul 1.0.0-alpha.6 - [89]
QNJBR73Kdon't return Result for infallible functions - [90]
4OCC6D42Recursive add - [91]
R3H7D42UDebugging `pijul git`: proper error reporting - [92]
LYTVEPH3Avoid cloning into an existing path - [93]
D3LR4GTKFixing a panic when decoding ChangeId from base32 - [94]
5HF7C67Mpush/pull: fixed "changes" arguments - [95]
3WIQYEISFixing conflicts in Cargo.lock - [96]
27PYHR6LMaking the get_latest_touch function (useful to make archives) public in libpijul - [97]
VNBLGT6GDo not output unmodified files when resetting (fix) - [98]
HSVGP2G4Version bump + formatting - [99]
UBCBQ5FGRemoving pijul/src/commands/checkout.rs (unused file), as well as litorg comments - [100]
G734WNM6flake.nix: use crate2nix - [101]
62XVBWPYremove redundant Clap attributes - [102]
43AJ37IXGetting rid of edge validation, which does not work for zombie conflicts - [103]
LCERQSWMCleanup - [104]
KDF6FJRVbigger clippy refactors - [105]
UFCZKKLXUpgrading to the latest Sanakirja/Rand - [106]
X6YFD4WVDo not download changes if we already have them - [107]
GHO6DWPIRefactoring iterators - [108]
TPEH2XNB1.0.0-alpha.28, with Tokio 1.0 - [109]
VO5OQW4WRemoving anyhow in libpijul - [110]
DJYHARZ7Skipping old files when recording - [111]
WLUID7NADo not block when downloading more than 100 changes over SSH - [112]
LLT3GY6UWhen recording, do not consider deleted filenames as current - [113]
7MNTFTDFExit with an error when a change could not be signed - [114]
I52XSRUHMassive cleanup, and simplification - [115]
V2MDXX62Channel rename: do not leave the old name behind - [116]
CIEUBH46Fixing an index-out-of-bounds error when serialising bad changes - [117]
NMX52UOGFixing the "invalid change" errors - [118]
CXM5CBS2Fixing `pijul remove` when files are not deleted - [119]
ZXTHL45Oaddress clippy lints - [120]
SQVWP4LUWhen clone fails, only remove directories we have created (not other directories) - [121]
EEKB5MHJFixing an error message in unrecord - [122]
I7VL7VPZMinor cleanup - [123]
OJZWJUF2MUCH faster `pijul add -r` - [124]
23LVKATNUse pager crate for log output - [125]
A6R6SGCPFixing a panic in `pijul change` - [126]
SNZ3OAMCuse native external subcommand support instead of hand-rolled one - [127]
SLJ3OHD4unrecord: show list of changes if none were given as arguments - [128]
XA23FMQMReset only files that have been modified - [129]
OU243LABSupport for staging - [130]
73NW2X2MReturning a parse error instead of panicking when parsing a text change - [131]
3AMEP2Y5More convenient interface for channels - [132]
AEPEFS7OWrite help for each argument - [133]
YS2HLPX6Don't propose an empty list of changes to push - [134]
ZHABNS3SCanonicalize all paths - [135]
O4DNWMPDCleaunp and proofreading of libpijul::record - [136]
6DOXSHWGCleanup, and version bump - [137]
KVBLRDOUConcatenating edits with order conflict resolutions (if relevant), and parsing the text format of the result - [138]
MF3WAHBIcommands/record: amend current change if unspecified - [139]
KJDQ2WOMFixing the parsing of section headers in the text change format - [140]
KQTD46KVUnrecord: restore files *after* having unapplied the *entire* change - [141]
CFNFIUJVParsing the correct flags for new vertices - [142]
A7NTQINQpijul channel delete: error if channel doesn't exist - [143]
76PCXGMLPushing to, and pulling from the local repository - [144]
YAJAXIV5Unrecording changes atomically - [145]
JMBGCWM5Fixing a zombie, probably due to the new conflict algorithm - [146]
VQPAUKBQchannel switch as an alias to reset - [147]
5BRU2RRWCleanup (debugging a crash related to trees/inodes) - [148]
Y7YAFMFFFix path prefix striping on Windows. - [149]
WZVCLZKYaddress clippy lints - [150]
M5FK3ABTComplete dependencies when pushing and pulling - [151]
MU5GSJAWPartial push and pull (WARNING: breaks the existing protocol) - [152]
7UPL3Y2AUnrecord: don't restore the same unrecorded file deletion twice in the inodes and tree tables - [153]
BZSC7VMYaddress clippy lints - [154]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [155]
7A2TSC4PConflict solving code (FOLDER edges) - [156]
QMTANHVNReset: only output changed files - [157]
WEHUTJUKLockfile update - [158]
DNQHXWRZaddress clippy hard errors - [159]
VMPAOJS2Don't output after pushing to a local channel
Change contents
- replacement in shell.nix at line 1
(import(fetchTarball {url = "https://github.com/edolstra/flake-compat/archive/c71d063a2fce96001c7ef99b301dfbd0c29ebde1.tar.gz";sha256 = "0vnbhqf0lc4mf2zmzqbfv6kqj9raijxz8xfaimxihz3c6s5gma2x";}){ src = ./.; }).shellNix.default[18.12]with import <nixpkgs> {};stdenv.mkDerivation {name = "Pijul";buildInputs = with pkgs; [xxHashzstdlibsodiumopensslpkgconfig] ++ lib.optionals stdenv.isDarwin(with darwin.apple_sdk.frameworks; [CoreServicesSecuritySystemConfiguration]);}# (import# (fetchTarball {# url = "https://github.com/edolstra/flake-compat/archive/c71d063a2fce96001c7ef99b301dfbd0c29ebde1.tar.gz";# sha256 = "0vnbhqf0lc4mf2zmzqbfv6kqj9raijxz8xfaimxihz3c6s5gma2x";# })# { src = ./.; }).shellNix.default - edit in pijul-macros/src/lib.rs at line 57[18.178]→[18.178:185](∅→∅),[18.185]→[18.2144:2496](∅→∅),[18.2144]→[18.2144:2496](∅→∅),[18.2496]→[18.186:370](∅→∅),[18.370]→[18.2553:2566](∅→∅),[18.2553]→[18.2553:2566](∅→∅),[18.2566]→[18.371:555](∅→∅)
};let pre_ = proc_macro2::TokenStream::from_iter(next(&mut input_iter).into_iter());let pre = if !pre_.is_empty() {quote! {let (key, value) = #pre_;}} else {quote! {}};let post_ = proc_macro2::TokenStream::from_iter(next(&mut input_iter).into_iter());let post = if post_.is_empty() {quote! { if let Ok(x) = self.txn.get(&self.#name, key, value) {Ok(x)} else {Err(TxnErr(SanakirjaError::PristineCorrupt))}}} else {quote! { if let Ok(x) = self.txn.get(&self.#name, key, value) {Ok(x . #post_)} else {Err(TxnErr(SanakirjaError::PristineCorrupt))}} - replacement in pijul-macros/src/lib.rs at line 59
fn #name_get <'txn> (&'txn self, key: #key, value: Option<#value>) -> Result<Option<#value>, TxnErr<Self::#error>> {use ::sanakirja::Transaction;#pre#postfn #name_get <'txn> (&'txn self, key: &#key, value: Option<&#value>) -> Result<Option<&'txn #value>, TxnErr<Self::#error>> {match ::sanakirja::btree::get(&self.txn, &self.#name, key, value) {Ok(Some((k, v))) if k == key => Ok(Some(v)),Ok(_) => Ok(None),Err(e) => {error!("{:?}", e);Err(TxnErr(SanakirjaError::PristineCorrupt))}} - replacement in pijul-macros/src/lib.rs at line 92[18.3671]→[18.868:1006](∅→∅),[18.1006]→[18.3802:3844](∅→∅),[18.3802]→[18.3802:3844](∅→∅),[18.3844]→[18.1007:1169](∅→∅)
fn #name_get(&self, db: &Self::#name_capital, key: #key, value: Option<#value>) -> Result<Option<#value>, TxnErr<Self::#error>> {use ::sanakirja::Transaction;if let Ok(x) = self.txn.get(db, key, value) {Ok(x)} else {Err(TxnErr(SanakirjaError::PristineCorrupt))fn #name_get<'txn>(&'txn self, db: &Self::#name_capital, key: &#key, value: Option<&#value>) -> Result<Option<&'txn #value>, TxnErr<Self::#error>> {match ::sanakirja::btree::get(&self.txn, db, key, value) {Ok(Some((k, v))) if k == key => Ok(Some(v)),Ok(_) => Ok(None),Err(e) => {error!("{:?}", e);Err(TxnErr(SanakirjaError::PristineCorrupt))} - replacement in pijul-macros/src/lib.rs at line 124
fn #name_get<'txn>(&'txn self, key: #key, value: Option<#value>) -> Result<Option<#value>, TxnErr<Self::#error>>;fn #name_get<'txn>(&'txn self, key: &#key, value: Option<&#value>) -> Result<Option<&'txn #value>, TxnErr<Self::#error>>; - replacement in pijul-macros/src/lib.rs at line 148
fn #name_get<'txn>(&'txn self, db: &Self::#name_capital, key: #key, value: Option<#value>) -> Result<Option<#value>, TxnErr<Self::#error>>;fn #name_get<'txn>(&'txn self, db: &Self::#name_capital, key: &#key, value: Option<&#value>) -> Result<Option<&'txn #value>, TxnErr<Self::#error>>; - edit in pijul-macros/src/lib.rs at line 155
let mut level = 0; - replacement in pijul-macros/src/lib.rs at line 161
return result;if level == 0 {return result;} else {result.push(TokenTree::Punct(p))} - edit in pijul-macros/src/lib.rs at line 167
} else if p.as_char() == '<' {level += 1;result.push(TokenTree::Punct(p))} else if level > 0 && p.as_char() == '>' {level -= 1;result.push(TokenTree::Punct(p)) - replacement in pijul-macros/src/lib.rs at line 177
Some(e) => result.push(e),Some(e) => {result.push(e)}, - replacement in pijul-macros/src/lib.rs at line 255
) -> Result<Option<(#key, #value)>, TxnErr<Self::#error>>;) -> Result<Option<(&'txn #key, &'txn #value)>, TxnErr<Self::#error>>; - replacement in pijul-macros/src/lib.rs at line 259
) -> Result<Option<(#key, #value)>, TxnErr<Self::#error>>;) -> Result<Option<(&'txn #key, &'txn #value)>, TxnErr<Self::#error>>; - replacement in pijul-macros/src/lib.rs at line 267
pos: Option<(#key, Option<#value>)>,pos: Option<(&#key, Option<&#value>)>, - replacement in pijul-macros/src/lib.rs at line 279
k: #key,v: Option<#value>k: &#key,v: Option<&#value> - replacement in pijul-macros/src/lib.rs at line 290
pos: Option<(#key, Option<#value>)>,pos: Option<(&#key, Option<&#value>)>, - edit in pijul-macros/src/lib.rs at line 354
let pre = proc_macro2::TokenStream::from_iter(next(&mut input_iter).into_iter());let post = proc_macro2::TokenStream::from_iter(next(&mut input_iter).into_iter());let pre_init = if !pre.is_empty() {quote! { let pos = #pre; }} else {quote! {}};let post = if !post.is_empty() {quote! { . #post }} else {quote! {}}; - replacement in pijul-macros/src/lib.rs at line 358
k: #key,v: Option<#value>k: &#key,v: Option<&#value> - replacement in pijul-macros/src/lib.rs at line 373
pos: Option<(#key, Option<#value>)>,pos: Option<(&#key, Option<&#value>)>, - replacement in pijul-macros/src/lib.rs at line 375[18.213]→[18.12925:12951](∅→∅),[18.2746]→[18.12925:12951](∅→∅),[18.12925]→[18.12925:12951](∅→∅),[18.12951]→[18.2747:2820](∅→∅),[18.2820]→[18.214:246](∅→∅),[18.246]→[18.2859:3091](∅→∅),[18.2859]→[18.2859:3091](∅→∅)
#pre_initif let Ok((cursor, _)) = txn.txn.set_cursors(&db, pos) {Ok(Cursor {cursor,txn,marker: std::marker::PhantomData,})} else {Err(TxnErr(SanakirjaError::PristineCorrupt))let mut cursor = ::sanakirja::btree::cursor::Cursor::new(&txn.txn, &db)?;if let Some((k, v)) = pos {cursor.set(&txn.txn, k, v)?; - edit in pijul-macros/src/lib.rs at line 379
Ok(Cursor {cursor,txn,k: std::marker::PhantomData,v: std::marker::PhantomData,t: std::marker::PhantomData,}) - replacement in pijul-macros/src/lib.rs at line 397
pos: Option<(#key, Option<#value>)>,pos: Option<(&#key, Option<&#value>)>, - replacement in pijul-macros/src/lib.rs at line 399
#pre_initlet mut cursor = if pos.is_some() {if let Ok((x, _)) = self.txn.set_cursors(&db, pos) {x} else {return Err(TxnErr(SanakirjaError::PristineCorrupt))}} else if let Ok(x) = self.txn.set_cursors_last(&db) {xlet mut cursor = ::sanakirja::btree::cursor::Cursor::new(&self.txn, &db)?;if let Some((k, v)) = pos {cursor.set(&self.txn, k, v)?; - replacement in pijul-macros/src/lib.rs at line 403
return Err(TxnErr(SanakirjaError::PristineCorrupt))};cursor.set_last(&self.txn)?;} - replacement in pijul-macros/src/lib.rs at line 408
marker: std::marker::PhantomData,k: std::marker::PhantomData,v: std::marker::PhantomData,t: std::marker::PhantomData, - edit in pijul-macros/src/lib.rs at line 416
type #cursor_name = ::sanakirja::Cursor; - replacement in pijul-macros/src/lib.rs at line 419
pos: Option<(#key, Option<#value>)>,pos: Option<(&#key, Option<&#value>)>, - replacement in pijul-macros/src/lib.rs at line 421[18.357]→[18.14379:14405](∅→∅),[18.3782]→[18.14379:14405](∅→∅),[18.14379]→[18.14379:14405](∅→∅),[18.14405]→[18.3783:4007](∅→∅)
#pre_initlet mut cursor = if let Ok((x, _)) = self.txn.set_cursors(&db, pos) {x} else {return Err(TxnErr(SanakirjaError::PristineCorrupt))};let mut cursor = ::sanakirja::btree::cursor::Cursor::new(&self.txn, &db)?;if let Some((k, v)) = pos {cursor.set(&self.txn, k, v)?;} - replacement in pijul-macros/src/lib.rs at line 428
marker: std::marker::PhantomData,k: std::marker::PhantomData,v: std::marker::PhantomData,t: std::marker::PhantomData, - replacement in pijul-macros/src/lib.rs at line 437
) -> Result<Option<(#key, #value)>, TxnErr<SanakirjaError>> {let x = if let Ok(x) = unsafe { ::sanakirja::next(&self.txn, cursor) } {) -> Result<Option<(&'txn #key, &'txn #value)>, TxnErr<SanakirjaError>> {let x = if let Ok(x) = cursor.next(&self.txn) { - replacement in pijul-macros/src/lib.rs at line 443
Ok(x #post)Ok(x) - replacement in pijul-macros/src/lib.rs at line 448
) -> Result<Option<(#key, #value)>, TxnErr<SanakirjaError>> {let x = if let Ok(x) = unsafe { ::sanakirja::prev(&self.txn, cursor) } {) -> Result<Option<(&'txn #key, &'txn #value)>, TxnErr<SanakirjaError>> {let x = if let Ok(x) = cursor.next(&self.txn) { - replacement in pijul-macros/src/lib.rs at line 454
Ok(x #post)Ok(x) - replacement in pijul-macros/src/lib.rs at line 504
impl<T: #txnt, RT: std::ops::Deref<Target = T>> Iterator for crate::pristine::RevCursor<T, RT, T::#cursor_name, #key, #value>impl<'a, T: #txnt> Iterator for crate::pristine::RevCursor<T, &'a T, T::#cursor_name, #key, #value> - replacement in pijul-macros/src/lib.rs at line 506
type Item = Result<(#key, #value), TxnErr<T::#error>>;type Item = Result<(&'a #key, &'a #value), TxnErr<T::#error>>; - replacement in pijul-macros/src/lib.rs at line 518[18.16909]→[18.16909:16910](∅→∅),[18.16910]→[18.5712:5772](∅→∅),[18.5772]→[18.16969:17047](∅→∅),[18.16969]→[18.16969:17047](∅→∅)
impl<T: #txnt, RT: std::ops::Deref<Target = T>>crate::pristine::Cursor<T, RT, T::#cursor_name, #key, #value>impl<'a, T: #txnt>crate::pristine::Cursor<T, &'a T, T::#cursor_name, #key, #value> - replacement in pijul-macros/src/lib.rs at line 521
pub fn prev(&mut self) -> Option<Result<(#key, #value), TxnErr<T::#error>>> {pub fn prev(&mut self) -> Option<Result<(&'a #key, &'a #value), TxnErr<T::#error>>> { - replacement in pijul-macros/src/lib.rs at line 529
impl<T: #txnt, RT: std::ops::Deref<Target = T>> Iterator for crate::pristine::Cursor<T, RT, T::#cursor_name, #key, #value>impl<'a, T: #txnt> Iterator for crate::pristine::Cursor<T, &'a T, T::#cursor_name, #key, #value> - replacement in pijul-macros/src/lib.rs at line 531
type Item = Result<(#key, #value), TxnErr<T::#error>>;type Item = Result<(&'a #key, &'a #value), TxnErr<T::#error>>; - replacement in pijul-macros/src/lib.rs at line 568
k: #key,e: #value,k: &#key,e: &#value, - replacement in pijul-macros/src/lib.rs at line 573
k: #key,e: Option<#value>,k: &#key,e: Option<&#value>, - edit in pijul-macros/src/lib.rs at line 600
let pre_key = proc_macro2::TokenStream::from_iter(next(&mut input_iter).into_iter());let pre_value = proc_macro2::TokenStream::from_iter(next(&mut input_iter).into_iter()); - replacement in pijul-macros/src/lib.rs at line 601[18.19625]→[18.7071:7072](∅→∅),[18.7072]→[18.19625:19700](∅→∅),[18.19625]→[18.19625:19700](∅→∅),[18.19727]→[18.19727:19827](∅→∅),[18.19827]→[18.7073:7215](∅→∅),[18.7215]→[18.19946:19960](∅→∅),[18.19946]→[18.19946:19960](∅→∅),[18.19987]→[18.19987:20095](∅→∅),[18.20095]→[18.7216:7358](∅→∅),[18.7358]→[18.20214:20299](∅→∅),[18.20214]→[18.20214:20299](∅→∅),[18.20326]→[18.20326:20426](∅→∅),[18.20426]→[18.7359:7413](∅→∅),[18.219]→[18.20473:20543](∅→∅),[18.7413]→[18.20473:20543](∅→∅),[18.20473]→[18.20473:20543](∅→∅),[18.20543]→[18.7414:7502](∅→∅),[18.7502]→[18.20615:20629](∅→∅),[18.20615]→[18.20615:20629](∅→∅),[18.20656]→[18.20656:20764](∅→∅),[18.20764]→[18.7503:7557](∅→∅),[18.265]→[18.20811:20892](∅→∅),[18.7557]→[18.20811:20892](∅→∅),[18.20811]→[18.20811:20892](∅→∅),[18.20892]→[18.7558:7646](∅→∅),[18.7646]→[18.20964:20995](∅→∅),[18.20964]→[18.20964:20995](∅→∅)
if pre_key.is_empty() {proc_macro::TokenStream::from(quote! {fn #put(&mut self,k: #key,v: #value,) -> Result<bool, TxnErr<Self::#error>> {Ok(self.txn.put(&mut self.rng, &mut self.#name, k, v).map_err(TxnErr)?)}fn #del(&mut self,k: #key,v: Option<#value>,) -> Result<bool, TxnErr<Self::#error>> {Ok(self.txn.del(&mut self.rng, &mut self.#name, k, v).map_err(TxnErr)?)}})} else {proc_macro::TokenStream::from(quote! {fn #put(&mut self,k: #key,v: #value,) -> Result<bool, TxnErr<Self::#error>> {let k = #pre_key;let v = #pre_value;Ok(self.txn.put(&mut self.rng, &mut self.#name, k, v).map_err(TxnErr)?)}fn #del(&mut self,k: #key,v: Option<#value>,) -> Result<bool, TxnErr<Self::#error>> {let k = #pre_key;let v = v.map(|v| #pre_value);Ok(self.txn.del(&mut self.rng, &mut self.#name, k, v).map_err(TxnErr)?)}})}proc_macro::TokenStream::from(quote! {fn #put(&mut self,k: &#key,v: &#value,) -> Result<bool, TxnErr<Self::#error>> {Ok(::sanakirja::btree::put(&mut self.txn, &mut self.#name, k, v).map_err(TxnErr)?)}fn #del(&mut self,k: &#key,v: Option<&#value>,) -> Result<bool, TxnErr<Self::#error>> {Ok(::sanakirja::btree::del(&mut self.txn, &mut self.#name, k, v).map_err(TxnErr)?)}}) - edit in pijul/src/repository.rs at line 4
use crate::{config, current_dir}; - edit in pijul/src/repository.rs at line 8
#[cfg(not(unix))]mod basic_lock;#[cfg(unix)]mod unix_lock;mod lock {#[cfg(not(unix))]pub use super::basic_lock::*;#[cfg(unix)]pub use super::unix_lock::*;use std::path::Path;pub enum Lock {Txn(TxnLock),MutTxn(MutTxnLock),} - edit in pijul/src/repository.rs at line 9[18.40]→[18.283:894](∅→∅),[18.894]→[18.7685:7719](∅→∅),[18.40]→[18.7685:7719](∅→∅),[18.7719]→[18.81:82](∅→∅),[18.81]→[18.81:82](∅→∅)
impl Lock {pub async fn mut_txn_lock<P: AsRef<Path>>(p: P) -> Result<Self, anyhow::Error> {let pp = p.as_ref().join("db_lock");Ok(Lock::MutTxn(mut_txn(&pp).await?))}pub async fn txn_lock<P: AsRef<Path>>(p: P) -> Result<Self, anyhow::Error> {let pp = p.as_ref().join("db_lock");Ok(Lock::Txn(txn(&pp).await?))}pub async fn commit(&mut self) -> Result<(), anyhow::Error> {match self {Lock::MutTxn(m) => m.commit().await,_ => Ok(()),}}}}use crate::{config, current_dir}; - edit in pijul/src/repository.rs at line 10
pub lock: lock::Lock, - replacement in pijul/src/repository.rs at line 54
Self::find_root_with_dot_dir(cur, DOT_DIR, true).awaitSelf::find_root_with_dot_dir(cur, DOT_DIR).await - edit in pijul/src/repository.rs at line 57
pub async unsafe fn find_root_immutable(cur: Option<PathBuf>) -> Result<Self, anyhow::Error> {Self::find_root_with_dot_dir(cur, DOT_DIR, false).await} - edit in pijul/src/repository.rs at line 60
mutable: bool, - replacement in pijul/src/repository.rs at line 79
lock: if mutable {lock::Lock::mut_txn_lock(&pristine_dir).await?} else {lock::Lock::txn_lock(&pristine_dir).await?},pristine: unsafe {libpijul::pristine::sanakirja::Pristine::new_nolock(&pristine_dir)?},pristine: libpijul::pristine::sanakirja::Pristine::new(&pristine_dir.join("db"))?, - replacement in pijul/src/repository.rs at line 105
lock: lock::Lock::mut_txn_lock(&pristine_dir).await?,pristine: unsafe {libpijul::pristine::sanakirja::Pristine::new_nolock(&pristine_dir)?},pristine: libpijul::pristine::sanakirja::Pristine::new(&pristine_dir.join("db"))?, - replacement in pijul/src/remote/ssh.rs at line 13
use libpijul::{Base32, ChannelRef, Hash, Merkle, MutTxnT, MutTxnTExt, TxnTExt};use libpijul::{Base32, Hash, Merkle, MutTxnT}; - edit in pijul/src/remote/ssh.rs at line 20
use crate::repository::Repository; - replacement in pijul/src/remote/ssh.rs at line 268
},Channel {sender: tokio::sync::mpsc::Sender<Vec<u8>>,pending: Vec<u8>, - replacement in pijul/src/remote/ssh.rs at line 475
State::Changelist { ref mut sender } => {State::Changelist {ref mut sender,ref mut pending,} => { - replacement in pijul/src/remote/ssh.rs at line 483
} else if let Ok(data) = std::str::from_utf8(&data) {for l in data.lines() {} else {debug!("{:?}", data);let mut p = 0;while let Some(i) = (&data[p..]).iter().position(|i| *i == b'\n') {let line = if !pending.is_empty() {pending.extend(&data[p..p + i]);&pending} else {&data[p..p + i]};let l = std::str::from_utf8(line)?; - edit in pijul/src/remote/ssh.rs at line 500
pending.clear();p += i + 1; - edit in pijul/src/remote/ssh.rs at line 503
pending.extend(&data[p..]); - edit in pijul/src/remote/ssh.rs at line 506
State::Channel { ref mut sender } => {debug!("state channel");sender.send(data).await?} - replacement in pijul/src/remote/ssh.rs at line 698
*self.state.lock().await = State::Changelist { sender };*self.state.lock().await = State::Changelist {sender,pending: Vec::new(),}; - edit in pijul/src/remote/ssh.rs at line 858[18.9964]→[18.49799:49821](∅→∅),[18.49799]→[18.49799:49821](∅→∅),[18.49821]→[18.402:459](∅→∅),[18.459]→[18.49868:50033](∅→∅),[18.49868]→[18.49868:50033](∅→∅),[18.50033]→[18.9965:10092](∅→∅),[18.10092]→[18.50033:50069](∅→∅),[18.50033]→[18.50033:50069](∅→∅),[18.50069]→[18.10093:10126](∅→∅),[18.10126]→[18.50069:50173](∅→∅),[18.50069]→[18.50069:50173](∅→∅),[18.50173]→[18.10127:10128](∅→∅),[18.10128]→[18.282:520](∅→∅),[18.520]→[18.1458:1507](∅→∅),[18.520]→[18.50173:50331](∅→∅),[18.1507]→[18.50173:50331](∅→∅),[18.10128]→[18.50173:50331](∅→∅),[18.50173]→[18.50173:50331](∅→∅),[18.50331]→[18.210:251](∅→∅),[18.251]→[18.10129:10183](∅→∅),[18.50331]→[18.10129:10183](∅→∅),[18.10183]→[18.252:301](∅→∅),[18.301]→[18.10183:10226](∅→∅),[18.10183]→[18.10183:10226](∅→∅),[18.10226]→[18.302:339](∅→∅),[18.339]→[18.10226:10253](∅→∅),[18.10226]→[18.10226:10253](∅→∅),[18.10253]→[18.51267:51299](∅→∅),[18.51267]→[18.51267:51299](∅→∅),[18.51299]→[18.340:378](∅→∅),[18.378]→[18.51299:51338](∅→∅),[18.51299]→[18.51299:51338](∅→∅),[18.51338]→[18.1508:1754](∅→∅),[18.548]→[18.51338:51533](∅→∅),[18.1754]→[18.51338:51533](∅→∅),[18.51338]→[18.51338:51533](∅→∅),[18.51533]→[18.8103:8159](∅→∅),[18.8159]→[18.51716:51779](∅→∅),[18.51716]→[18.51716:51779](∅→∅),[18.51779]→[18.8160:8245](∅→∅),[18.8245]→[18.52059:52117](∅→∅),[18.52059]→[18.52059:52117](∅→∅),[18.52117]→[18.379:421](∅→∅),[18.421]→[18.619:694](∅→∅),[18.501]→[18.52289:52310](∅→∅),[18.694]→[18.52289:52310](∅→∅),[18.10334]→[18.52289:52310](∅→∅),[18.52289]→[18.52289:52310](∅→∅),[18.52310]→[18.43:169](∅→∅),[18.202]→[18.202:236](∅→∅),[18.236]→[18.0:18](∅→∅),[18.18]→[18.236:248](∅→∅),[18.236]→[18.236:248](∅→∅)
Ok(())}pub async fn clone_channel<T: TxnTExt + MutTxnTExt>(&mut self,repo: &mut Repository,txn: &mut T,channel: &mut ChannelRef<T>,lazy: bool,) -> Result<(), anyhow::Error> {let (sender, mut recv) = tokio::sync::mpsc::channel(10);*self.state.lock().await = State::Channel { sender };self.run_protocol().await?;debug!("clone channel");self.c.data(format!("channel {}\n", self.channel).as_bytes()).await?;let progress = indicatif::ProgressBar::new_spinner();progress.set_style(indicatif::ProgressStyle::default_spinner().template("{spinner} Cloning channel"),);progress.enable_steady_tick(100);*PROGRESS.lock().await = Some(progress);let from_dump_alive = {let mut from_dump =libpijul::pristine::channel_dump::ChannelFromDump::new(txn, channel.clone());debug!("receiving channel");while let Some(msg) = recv.recv().await {debug!("msg = {:?}", msg.len());if from_dump.read(&msg)? {debug!("break");break;}}debug!("from dump done");from_dump.alive};if let Some(ref mut progress) = *PROGRESS.lock().await {progress.set_style(indicatif::ProgressStyle::default_spinner().template("✓ Cloning channel"),);progress.finish();}let channel_ = channel.borrow();debug!("cloned, now downloading changes");let mut hashes = Vec::new();if lazy {for &ch in from_dump_alive.iter() {let h = txn.get_external(ch)?.unwrap();hashes.push(h);}} else {for h in txn.log(&channel_, 0)? {hashes.push((h?.1).0);}}std::mem::drop(channel_);debug!("hashes = {:#?}", hashes);self.download_changes_(&hashes, None, &mut repo.changes_dir, true).await?;txn.output_repository_no_pending(&mut repo.working_copy,&repo.changes,channel,"",true,None,)?; - replacement in pijul/src/remote/mod.rs at line 95
if let Ok(pristine) = libpijul::pristine::sanakirja::Pristine::new(&dot_dir) {if let Ok(pristine) = libpijul::pristine::sanakirja::Pristine::new(&dot_dir.join("db")) { - replacement in pijul/src/remote/mod.rs at line 191
let k = k.unwrap().0;debug!("filter_map {:?}", k);let k = (*k.unwrap().0).into(); - edit in pijul/src/remote/mod.rs at line 204
debug!("deleted"); - replacement in pijul/src/remote/mod.rs at line 222
let (mut b, (_, state)) = if let Some(last) = txn.last_remote(remote)? {lastlet (mut b, state): (_, Merkle) = if let Some((u, v)) = txn.last_remote(remote)? {debug!("dichotomy_changelist: {:?} {:?}", u, v);(u, (&v.b).into()) - replacement in pijul/src/remote/mod.rs at line 240
let (mid, (_, state)) = txn.get_remote_state(remote, mid)?.unwrap();let (mid, state) = txn.get_remote_state(remote, mid)?.unwrap(); - replacement in pijul/src/remote/mod.rs at line 244
if remote_state == state {if remote_state == state.b { - replacement in pijul/src/remote/mod.rs at line 296
txn.archive_with_state(&changes, &mut channel, state, extra, &mut tarball)?txn.archive_with_state(&changes, &mut channel, &state, extra, &mut tarball)? - replacement in pijul/src/remote/mod.rs at line 460
txn.apply_change_ws(&repo.changes, channel, *h, &mut ws)?;txn.apply_change_ws(&repo.changes, channel, h, &mut ws)?; - replacement in pijul/src/remote/mod.rs at line 523
txn.apply_change_ws(&repo.changes, channel, hash, &mut ws)?;txn.apply_change_ws(&repo.changes, channel, &hash, &mut ws)?; - edit in pijul/src/remote/mod.rs at line 536
lazy: bool, - edit in pijul/src/remote/mod.rs at line 540[18.73416]→[18.73416:73610](∅→∅),[18.73610]→[18.9171:9284](∅→∅),[18.9284]→[18.73694:73931](∅→∅),[18.73694]→[18.73694:73931](∅→∅),[18.73931]→[18.9285:9339](∅→∅),[18.9339]→[18.74000:74014](∅→∅),[18.74000]→[18.74000:74014](∅→∅),[18.74014]→[18.2559:2664](∅→∅),[18.819]→[18.74109:74269](∅→∅),[18.2664]→[18.74109:74269](∅→∅),[18.74109]→[18.74109:74269](∅→∅)
if let RemoteRepo::Ssh(ref mut s) = self {s.clone_channel(repo, txn, channel, lazy).await?;let mut to_unrecord = Vec::new();let mut found = false;for x in txn.iter_rev_remote(&remote.borrow().remote, None)? {let (n, (h, s)) = x?;debug!("{:?} {:?} {:?}", n, h, s);if s == state {found = true;break;}to_unrecord.push(h);}if !found {bail!("State not found: {:?}", state)}self.pull(repo, txn, channel, &to_unrecord, &HashSet::new(), false).await?;for unrec in to_unrecord.iter() {txn.unrecord(&repo.changes, channel, unrec)?;}return Ok(());} - replacement in pijul/src/remote/mod.rs at line 543
let (n, (h, s)) = x?;debug!("{:?} {:?} {:?}", n, h, s);to_pull.push(h);if s == state {let (n, p) = x?;debug!("{:?} {:?}", n, p);to_pull.push(p.a.into());if p.b == state { - replacement in pijul/src/remote/mod.rs at line 584
if repo.changes.has_contents(*c, txn.get_internal(*c)?) {let sc = c.into();if repo.changes.has_contents(*c, txn.get_internal(&sc)?.cloned()){ - replacement in pijul/src/remote/mod.rs at line 598
let change = if let Some(i) = txn.get_internal(*c)? {let change = if let Some(&i) = txn.get_internal(&sc)? { - replacement in pijul/src/remote/mod.rs at line 606
start: libpijul::pristine::ChangePosition(0),end: libpijul::pristine::ChangePosition(0),start: libpijul::pristine::ChangePosition(0u64.into()),end: libpijul::pristine::ChangePosition(0u64.into()), - replacement in pijul/src/remote/mod.rs at line 610
if txn.is_alive(&channel, v)? {if txn.is_alive(&channel, &v)? { - edit in pijul/src/remote/mod.rs at line 626
lazy: bool, - edit in pijul/src/remote/mod.rs at line 628[18.77979]→[18.77979:78008](∅→∅),[18.78008]→[18.328:453](∅→∅),[18.453]→[18.78205:78229](∅→∅),[18.78205]→[18.78205:78229](∅→∅)
if path.is_empty() {if let RemoteRepo::Ssh(s) = self {return s.clone_channel(repo, txn, local_channel, lazy).await;}} - replacement in pijul/src/remote/mod.rs at line 634
let (_, (h, _)) = x?;pullable.push(h)let (_, p) = x?;pullable.push(p.a.into()) - replacement in pijul/src/remote/mod.rs at line 679
pos: ChangePosition(caps.name("num").unwrap().as_str().parse().unwrap()),pos: ChangePosition(caps.name("num").unwrap().as_str().parse::<u64>().unwrap().into(),), - replacement in pijul/src/remote/local.rs at line 30
(n, m)(n, m.into()) - replacement in pijul/src/remote/local.rs at line 63
change: remote_txn.get_external(p.change)?.unwrap(),change: remote_txn.get_external(&p.change)?.unwrap().into(), - edit in pijul/src/remote/local.rs at line 81
debug!("downloading changelist item {:?} {:?} {:?}",n,h.to_base32(),m.to_base32()); - replacement in pijul/src/remote/local.rs at line 85
.get_touched_files(*x, Some(h_int)).get_touched_files(x, Some(h_int)) - replacement in pijul/src/remote/local.rs at line 90
txn.put_remote(remote, n, (h, m))?;txn.put_remote(remote, n, (h.into(), m.into()))?; - replacement in pijul/src/remote/local.rs at line 163
txn.apply_change_ws(store, channel, *c, &mut ws)?;txn.apply_change_ws(store, channel, c, &mut ws)?; - edit in pijul/src/main.rs at line 77
////// Users can ignore files and directories by placing the relevant paths/// in one or more `.ignore` files using git's pattern syntax. - replacement in pijul/src/main.rs at line 123[18.4574]→[18.4574:4591](∅→∅),[18.4591]→[18.0:43](∅→∅),[18.43]→[18.4591:4607](∅→∅),[18.4591]→[18.4591:4607](∅→∅)
#[cfg(unix)]#[clap(setting = AppSettings::Hidden)]Lock(Lock),/// Manage tags (create tags, check out a tag)// Tag(Tag), - replacement in pijul/src/main.rs at line 212
#[cfg(unix)]SubCommand::Lock(lock) => lock.run().await,// SubCommand::Tag(tag) => tag.run().await, - replacement in pijul/src/commands/unrecord.rs at line 66
.map(|h| (h.unwrap().1).0).map(|h| (h.unwrap().1).0.into()) - replacement in pijul/src/commands/unrecord.rs at line 71
hashes.push((*h, txn.get_internal(*h)?.unwrap()))hashes.push((*h, *txn.get_internal(&h.into())?.unwrap())) - replacement in pijul/src/commands/unrecord.rs at line 80
let mut changes = Vec::new();let mut changes: Vec<(Hash, ChangeId, Option<u64>)> = Vec::new(); - replacement in pijul/src/commands/unrecord.rs at line 83
.get_changeset(txn.changes(&channel_), change_id).get_changeset(txn.changes(&channel_), &change_id) - replacement in pijul/src/commands/unrecord.rs at line 85
changes.push((hash, change_id, n));changes.push((hash, change_id, n.map(|&x| x.into()))); - replacement in pijul/src/commands/unrecord.rs at line 91
for p in txn.iter_revdep(change_id)? {for p in txn.iter_revdep(&change_id)? { - replacement in pijul/src/commands/unrecord.rs at line 93
if p < change_id {if p < &change_id { - replacement in pijul/src/commands/unrecord.rs at line 95
} else if p > change_id {} else if p > &change_id { - replacement in pijul/src/commands/unrecord.rs at line 99
let dep = txn.get_external(d)?.unwrap();let dep: Hash = txn.get_external(d)?.unwrap().into(); - edit in pijul/src/commands/unrecord.rs at line 135
repo.lock.commit().await?; - edit in pijul/src/commands/reset.rs at line 108
repo.lock.commit().await?; - edit in pijul/src/commands/reset.rs at line 161
repo.lock.commit().await?; - replacement in pijul/src/commands/reset.rs at line 179
for x in libpijul::pristine::changeid_log(txn, chan, from)? {let (n, (u, _)) = x?;debug!("{:?} {:?} {:?}", n, u, from);for x in libpijul::pristine::changeid_log(txn, chan, from.into())? {let (n, p) = x?;let n: u64 = (*n).into();debug!("{:?} {:?} {:?}", n, p, from); - replacement in pijul/src/commands/reset.rs at line 186
if changediff.insert(u) {for y in txn.iter_rev_touched_files(u, None)? {if changediff.insert(p.a) {for y in txn.iter_rev_touched_files(&p.a, None)? { - replacement in pijul/src/commands/reset.rs at line 189
if uu < u {continue;} else if uu > u {debug_assert!(uu >= &p.a);if uu > &p.a { - replacement in pijul/src/commands/reset.rs at line 193
inodes.insert(pos);inodes.insert(*pos); - edit in pijul/src/commands/record.rs at line 42
#[clap(long = "tag")]pub tag: bool, - replacement in pijul/src/commands/record.rs at line 73
.get_changeset(txn.changes(&channel.borrow()), c)?.get_changeset(txn.changes(&channel.borrow()), &c)? - replacement in pijul/src/commands/record.rs at line 89
(h?.1).0(h?.1).0.into() - replacement in pijul/src/commands/record.rs at line 148
txn.apply_local_change(&mut channel, &change, hash, &updates)?;::sanakirja::debug::debug(&txn.txn, &[&txn.internal], "internal", true);txn.apply_local_change(&mut channel, &change, &hash, &updates)?; - edit in pijul/src/commands/record.rs at line 160
repo.lock.commit().await?; - edit in pijul/src/commands/record.rs at line 165
repo.lock.commit().await?; - replacement in pijul/src/commands/pushpull.rs at line 34
let mut repo = Repository::find_root(self.repo_path).await?;let repo = Repository::find_root(self.repo_path).await?; - edit in pijul/src/commands/pushpull.rs at line 51
repo.lock.commit().await?; - replacement in pijul/src/commands/pushpull.rs at line 122
let mut repo = Repository::find_root(self.repo_path).await?;let repo = Repository::find_root(self.repo_path).await?; - replacement in pijul/src/commands/pushpull.rs at line 173
let mut to_upload = Vec::new();let mut to_upload: Vec<Hash> = Vec::new(); - replacement in pijul/src/commands/pushpull.rs at line 177
if txn.remote_has_state(remote_changes, m)? {if txn.remote_has_state(remote_changes, &m)? { - replacement in pijul/src/commands/pushpull.rs at line 181
if !txn.remote_has_change(&remote_changes, h)? {if !txn.remote_has_change(&remote_changes, &h)? { - replacement in pijul/src/commands/pushpull.rs at line 183
to_upload.push(h)to_upload.push(h.into()) - replacement in pijul/src/commands/pushpull.rs at line 186
if txn.get_touched_files(*p, Some(h_int))?.is_some() {to_upload.push(h);if txn.get_touched_files(p, Some(h_int))?.is_some() {to_upload.push(h.into()); - replacement in pijul/src/commands/pushpull.rs at line 199
to_upload.push(h)to_upload.push(h.into()) - replacement in pijul/src/commands/pushpull.rs at line 202
if txn.get_touched_files(*p, Some(h_int))?.is_some() {to_upload.push(h);if txn.get_touched_files(p, Some(h_int))?.is_some() {to_upload.push(h.into()); - replacement in pijul/src/commands/pushpull.rs at line 221
let mut u = Vec::new();let mut u: Vec<libpijul::Hash> = Vec::new(); - edit in pijul/src/commands/pushpull.rs at line 269
repo.lock.commit().await?; - replacement in pijul/src/commands/pushpull.rs at line 308
let mut to_download = Vec::new();let mut to_download: Vec<Hash> = Vec::new(); - replacement in pijul/src/commands/pushpull.rs at line 312
let (h, m) = x?.1;let p = x?.1; // (h, m) - replacement in pijul/src/commands/pushpull.rs at line 314
.channel_has_state(txn.states(&channel.borrow()), m)?.channel_has_state(txn.states(&channel.borrow()), &p.b)? - replacement in pijul/src/commands/pushpull.rs at line 318
} else if txn.get_revchanges(&channel, h)?.is_none() {to_download.push(h)} else if txn.get_revchanges(&channel, &p.a.into())?.is_none() {to_download.push(p.a.into()) - replacement in pijul/src/commands/pushpull.rs at line 336
change: txn.get_external(x.change).unwrap().unwrap(),change: txn.get_external(&x.change).unwrap().unwrap().into(), - replacement in pijul/src/commands/pushpull.rs at line 344
.channel_has_state(txn.states(&channel.borrow()), m)?.channel_has_state(txn.states(&channel.borrow()), &m)? - replacement in pijul/src/commands/pushpull.rs at line 356
txn.get_rev_touched_files(h_int, Some(inode))txn.get_rev_touched_files(h_int, Some(&inode)) - replacement in pijul/src/commands/pushpull.rs at line 361
to_download.push(h)to_download.push(h.into()) - replacement in pijul/src/commands/pushpull.rs at line 406
debug!("to_download = {:?}", to_download);debug!("to_download = {:#?}", to_download); - replacement in pijul/src/commands/pushpull.rs at line 413
txn.apply_change_rec_ws(&repo.changes, &mut channel, *h, &mut ws)?;txn.apply_change_rec_ws(&repo.changes, &mut channel, h, &mut ws)?; - replacement in pijul/src/commands/pushpull.rs at line 437
if let Some(int) = txn.get_internal(*d)? {if let Some(int) = txn.get_internal(&d.into())? { - replacement in pijul/src/commands/pushpull.rs at line 446
change: txn.get_external(inode.change)?.unwrap(),change: txn.get_external(&inode.change)?.unwrap().into(), - replacement in pijul/src/commands/pushpull.rs at line 459
.push(libpijul::fs::find_path(&repo.changes, &txn, &channel.borrow(), false, i)?.0).push(libpijul::fs::find_path(&repo.changes, &txn, &channel.borrow(), false, *i)?.0) - edit in pijul/src/commands/pushpull.rs at line 489
repo.lock.commit().await?; - replacement in pijul/src/commands/pushpull.rs at line 513
if txn.remote_has_change(rem, d)? {if txn.remote_has_change(rem, &d.into())? { - edit in pijul/src/commands/protocol.rs at line 81
let m: libpijul::Merkle = m.into(); - edit in pijul/src/commands/protocol.rs at line 89
let m: Merkle = m.into(); - replacement in pijul/src/commands/protocol.rs at line 107
let h = txn.get_external(p.change)?.unwrap();let h: libpijul::Hash = txn.get_external(&p.change)?.unwrap().into(); - replacement in pijul/src/commands/protocol.rs at line 125
x.change == h_int|| txn.get_touched_files(*x, Some(h_int)).unwrap().is_some()x.change == *h_int|| txn.get_touched_files(x, Some(h_int)).unwrap().is_some() - edit in pijul/src/commands/protocol.rs at line 129
let h: Hash = h.into();let m: Merkle = m.into(); - replacement in pijul/src/commands/protocol.rs at line 184
txn.apply_change_ws(&repo.changes, &mut channel, h, &mut ws)?;txn.apply_change_ws(&repo.changes, &mut channel, &h, &mut ws)?; - edit in pijul/src/commands/protocol.rs at line 186[12.128]→[18.130577:130748](∅→∅),[18.130577]→[18.130577:130748](∅→∅),[18.130748]→[18.16547:16676](∅→∅),[18.16676]→[18.130875:130921](∅→∅),[18.130875]→[18.130875:130921](∅→∅)
} else if let Some(cap) = CHANNEL.captures(&buf) {let channel = load_channel(&txn, &cap[1])?;let channel = channel.borrow();for d in libpijul::pristine::channel_dump::dump_channel(&txn, channel)? {o.write_all(&d?)?;}o.flush()?; - replacement in pijul/src/commands/protocol.rs at line 212
state,&state, - edit in pijul/src/commands/protocol.rs at line 246
repo.lock.commit().await?; - edit in pijul/src/commands/mod.rs at line 59
#[cfg(unix)]mod lock;#[cfg(unix)]pub use lock::*; - replacement in pijul/src/commands/mod.rs at line 95
txn.apply_local_change(channel, &pending_change, hash, &recorded.updatables)?;txn.apply_local_change(channel, &pending_change, &hash, &recorded.updatables)?; - replacement in pijul/src/commands/log.rs at line 32
let repo = unsafe { Repository::find_root_immutable(self.repo_path).await? };let repo = unsafe { Repository::find_root(self.repo_path).await? }; - replacement in pijul/src/commands/log.rs at line 45
let h = (h?.1).0;let h: libpijul::Hash = (h?.1).0.into(); - replacement in pijul/src/commands/log.rs at line 52
let header = changes.get_header(&h)?;let h: libpijul::Hash = h.into();let mrk: libpijul::Merkle = mrk.into();let header = changes.get_header(&h.into())?; - edit in pijul/src/commands/init.rs at line 28
repo.lock.commit().await?; - replacement in pijul/src/commands/fork.rs at line 26
let mut repo = Repository::find_root(self.repo_path).await?;let repo = Repository::find_root(self.repo_path).await?; - replacement in pijul/src/commands/fork.rs at line 32
txn.apply_change_rec(&repo.changes, &mut channel, hash)?txn.apply_change_rec(&repo.changes, &mut channel, &hash)? - edit in pijul/src/commands/fork.rs at line 40
repo.lock.commit().await?; - replacement in pijul/src/commands/file_operations.rs at line 25
let mut repo = Repository::find_root(self.repo_path.clone()).await?;let repo = Repository::find_root(self.repo_path.clone()).await?; - edit in pijul/src/commands/file_operations.rs at line 57
repo.lock.commit().await?; - replacement in pijul/src/commands/file_operations.rs at line 78
let repo = unsafe { Repository::find_root_immutable(self.repo_path).await? };let repo = unsafe { Repository::find_root(self.repo_path).await? }; - replacement in pijul/src/commands/file_operations.rs at line 104
let mut repo = Repository::find_root(self.repo_path.clone()).await?;let repo = Repository::find_root(self.repo_path.clone()).await?; - edit in pijul/src/commands/file_operations.rs at line 150
repo.lock.commit().await?; - replacement in pijul/src/commands/file_operations.rs at line 165
let mut repo = Repository::find_root(self.repo_path.clone()).await?;let repo = Repository::find_root(self.repo_path.clone()).await?; - edit in pijul/src/commands/file_operations.rs at line 191
repo.lock.commit().await?; - replacement in pijul/src/commands/credit.rs at line 28
let mut repo = unsafe { Repository::find_root_immutable(self.repo_path).await? };let mut repo = Repository::find_root(self.repo_path).await?; - replacement in pijul/src/commands/credit.rs at line 107
if e.introduced_by.is_root() {if e.introduced_by().is_root() { - replacement in pijul/src/commands/credit.rs at line 110
self.changes.insert(e.introduced_by);self.changes.insert(e.introduced_by()); - edit in pijul/src/commands/clone.rs at line 11[18.183067]→[18.4552:4629](∅→∅),[18.4629]→[18.183147:183163](∅→∅),[18.183147]→[18.183147:183163](∅→∅)
/// Only download changes with alive contents#[clap(long = "lazy")]lazy: bool, - replacement in pijul/src/commands/clone.rs at line 75
.clone_state(&mut repo, &mut txn, &mut channel, h, self.lazy).clone_state(&mut repo, &mut txn, &mut channel, h) - replacement in pijul/src/commands/clone.rs at line 79
.clone_channel(&mut repo,&mut txn,&mut channel,self.lazy,&self.partial_paths,).clone_channel(&mut repo, &mut txn, &mut channel, &self.partial_paths) - edit in pijul/src/commands/clone.rs at line 97
repo.lock.commit().await?; - replacement in pijul/src/commands/channel.rs at line 54
let mut repo = Repository::find_root(self.repo_path).await?;let repo = Repository::find_root(self.repo_path).await?; - edit in pijul/src/commands/channel.rs at line 64
repo.lock.commit().await?; - replacement in pijul/src/commands/channel.rs at line 76
let mut repo = Repository::find_root(self.repo_path).await?;let repo = Repository::find_root(self.repo_path).await?; - edit in pijul/src/commands/channel.rs at line 93
repo.lock.commit().await?; - replacement in pijul/src/commands/change.rs at line 22
let repo = unsafe { Repository::find_root_immutable(self.repo_path.clone()).await? };let repo = unsafe { Repository::find_root(self.repo_path.clone()).await? }; - replacement in pijul/src/commands/change.rs at line 37
(h?.1).0(h?.1).0.into() - replacement in pijul/src/commands/archive.rs at line 99
state,&state, - edit in pijul/src/commands/apply.rs at line 8
use log::*; - replacement in pijul/src/commands/apply.rs at line 55
txn.apply_deps_rec(&repo.changes, &mut channel, hashes.pop().unwrap())?;txn.apply_deps_rec(&repo.changes, &mut channel, hashes.last().unwrap())?; - replacement in pijul/src/commands/apply.rs at line 57
for hash in hashes.drain(..) {for hash in hashes.iter() { - replacement in pijul/src/commands/apply.rs at line 64
if let Some(int) = txn.get_internal(*d)? {if let Some(int) = txn.get_internal(&d.into())? {debug!("int = {:?}", int); - edit in pijul/src/commands/apply.rs at line 67
debug!("{:?}", inode); - replacement in pijul/src/commands/apply.rs at line 74
touched.insert(inode);touched.insert(*inode); - edit in pijul/src/commands/apply.rs at line 92
repo.lock.commit().await?; - edit in pijul/Cargo.toml at line 33
"src/commands/tag.rs", - replacement in pijul/Cargo.toml at line 46
git = [ "git2", "sanakirja/git2" ]git = [ "git2" ] - replacement in pijul/Cargo.toml at line 69
sanakirja = { version = "0.15.8", features = ["crc32"] }sanakirja = { version = "1.1.2", features = ["crc32"] } - replacement in libpijul/src/unrecord/working_copy.rs at line 18
if let Some(inode) = txn.get_revinodes(pos, None)? {del_inodes_with_rev(txn, inode, pos)?;if let Some(&inode) = txn.get_revinodes(&pos, None)? {del_inodes_with_rev(txn, &inode, &pos)?; - replacement in libpijul/src/unrecord/working_copy.rs at line 38
txn.find_block_end(txn.graph(channel), internal_pos(txn, &e.from, change_id)?)?;*txn.find_block_end(txn.graph(channel), internal_pos(txn, &e.from, change_id)?)?; - replacement in libpijul/src/unrecord/working_copy.rs at line 73
if e.flag.contains(EdgeFlags::PARENT | EdgeFlags::FOLDER) {source_parent = Some(e.dest);if e.flag().contains(EdgeFlags::PARENT | EdgeFlags::FOLDER) {source_parent = Some(e.dest()); - replacement in libpijul/src/unrecord/working_copy.rs at line 82
} else if let Some(inode) = txn.get_revinodes(source_parent, None)? {} else if let Some(&inode) = txn.get_revinodes(&source_parent, None)? { - replacement in libpijul/src/unrecord/working_copy.rs at line 105
.get_file_name(|h| txn.get_external(h).unwrap(), source, &mut name).get_file_name(|h| txn.get_external(&h).unwrap().map(From::from), source, &mut name) - replacement in libpijul/src/unrecord/working_copy.rs at line 112
if let Some(inode) = txn.get_revinodes(dest, None)? {Ok(inode)if let Some(inode) = txn.get_revinodes(&dest, None)? {Ok(*inode) - replacement in libpijul/src/unrecord/working_copy.rs at line 116
put_tree_with_rev(txn, file_id.as_file_id(), inode)?;put_inodes_with_rev(txn, inode, dest)?;put_tree_with_rev(txn, &file_id, &inode)?;put_inodes_with_rev(txn, &inode, &dest)?; - replacement in libpijul/src/unrecord/working_copy.rs at line 136
if !e.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT) {if !e.flag().contains(EdgeFlags::FOLDER | EdgeFlags::PARENT) { - replacement in libpijul/src/unrecord/working_copy.rs at line 139
if e.flag.contains(EdgeFlags::DELETED) {debug!("deleted: {:?}", e.introduced_by);if e.flag().contains(EdgeFlags::DELETED) {debug!("deleted: {:?}", e.introduced_by()); - replacement in libpijul/src/unrecord/working_copy.rs at line 142
.get_changeset(txn.changes(channel), e.introduced_by)?.get_changeset(txn.changes(channel), &e.introduced_by())? - replacement in libpijul/src/unrecord/working_copy.rs at line 147
*v = e.dest*v = e.dest() - replacement in libpijul/src/unrecord/working_copy.rs at line 150
next = Some((age, e.dest))next = Some((age, e.dest())) - replacement in libpijul/src/unrecord/working_copy.rs at line 153
next = Some((0, e.dest));next = Some((&L64(0), e.dest())); - replacement in libpijul/src/unrecord/working_copy.rs at line 157
txn.find_block_end(txn.graph(channel), next.unwrap().1)Ok(*txn.find_block_end(txn.graph(channel), next.unwrap().1)?) - replacement in libpijul/src/unrecord/working_copy.rs at line 172
if let Some(inode) = txn.get_revinodes(position, None)? {del_inodes_with_rev(txn, inode, position)?;if let Some(&inode) = txn.get_revinodes(&position, None)? {del_inodes_with_rev(txn, &inode, &position)?; - replacement in libpijul/src/unrecord/mod.rs at line 56
let change_id = if let Some(h) = txn.get_internal(*hash)? {let change_id = if let Some(&h) = txn.get_internal(&hash.into())? { - replacement in libpijul/src/unrecord/mod.rs at line 69
assert!(txn.get_revdep(change_id, None)?.is_none());while txn.del_dep(change_id, None)? {}txn.del_external(change_id, None)?;txn.del_internal(*hash, None)?;assert!(txn.get_revdep(&change_id, None)?.is_none());while txn.del_dep(&change_id, None)? {}txn.del_external(&change_id, None)?;txn.del_internal(&hash.into(), None)?; - replacement in libpijul/src/unrecord/mod.rs at line 74
let dep = txn.get_internal(*dep)?.unwrap();txn.del_revdep(dep, Some(change_id))?;let dep = *txn.get_internal(&dep.into())?.unwrap();txn.del_revdep(&dep, Some(&change_id))?; - replacement in libpijul/src/unrecord/mod.rs at line 91
let timestamp = if let Some(ts) = txn.get_changeset(txn.changes(channel), change_id)? {let timestamp = if let Some(&ts) = txn.get_changeset(txn.changes(channel), &change_id)? { - replacement in libpijul/src/unrecord/mod.rs at line 97
for x in txn.iter_revdep(change_id)? {for x in txn.iter_revdep(&change_id)? { - replacement in libpijul/src/unrecord/mod.rs at line 99
if p < change_id {continue;} else if p > change_id {assert!(*p >= change_id);if *p > change_id { - replacement in libpijul/src/unrecord/mod.rs at line 106
dependent: d,dependent: *d, - replacement in libpijul/src/unrecord/mod.rs at line 111
txn.del_changes(channel, change_id, timestamp)?;txn.del_changes(channel, change_id, timestamp.into())?; - replacement in libpijul/src/unrecord/mod.rs at line 125
&& txn.get_changeset(txn.changes(&br), change_id)?.is_some()&& txn.get_changeset(txn.changes(&br), &change_id)?.is_some() - replacement in libpijul/src/unrecord/mod.rs at line 169
)?)?; - replacement in libpijul/src/unrecord/mod.rs at line 223
del: Vec<Edge>,del: Vec<SerializedEdge>, - replacement in libpijul/src/unrecord/mod.rs at line 226
del_edges: Vec<(Vertex<ChangeId>, Edge)>,del_edges: Vec<(Vertex<ChangeId>, SerializedEdge)>, - replacement in libpijul/src/unrecord/mod.rs at line 241
while let Ok(vertex) = txn.find_block(channel, pos) {while let Ok(&vertex) = txn.find_block(channel, pos) { - replacement in libpijul/src/unrecord/mod.rs at line 246[18.237352]→[18.666:789](∅→∅),[18.789]→[18.2673:2746](∅→∅),[18.2746]→[18.237596:237658](∅→∅),[18.7814]→[18.237596:237658](∅→∅),[18.237596]→[18.237596:237658](∅→∅)
if !e.flag.is_deleted() {if e.flag.is_parent() {if !e.flag.is_folder() {let up_v = txn.find_block_end(channel, e.dest)?;ws.up.insert(up_v, new_vertex.inode);if !e.flag().is_deleted() {if e.flag().is_parent() {if !e.flag().is_folder() {let up_v = txn.find_block_end(channel, e.dest())?;ws.up.insert(*up_v, new_vertex.inode); - replacement in libpijul/src/unrecord/mod.rs at line 253
let down_v = txn.find_block(channel, e.dest)?;ws.down.insert(down_v, new_vertex.inode);if e.flag.is_folder() {ws.apply.missing_context.files.insert(down_v);let down_v = txn.find_block(channel, e.dest())?;ws.down.insert(*down_v, new_vertex.inode);if e.flag().is_folder() {ws.apply.missing_context.files.insert(*down_v); - replacement in libpijul/src/unrecord/mod.rs at line 260
ws.del.push(e)ws.del.push(*e) - replacement in libpijul/src/unrecord/mod.rs at line 281
let (a, b) = if e.flag.is_parent() {(txn.find_block_end(channel, e.dest)?, vertex)let (a, b) = if e.flag().is_parent() {(*txn.find_block_end(channel, e.dest())?, vertex) - replacement in libpijul/src/unrecord/mod.rs at line 284
(vertex, txn.find_block(channel, e.dest)?)(vertex, *txn.find_block(channel, e.dest())?) - replacement in libpijul/src/unrecord/mod.rs at line 289
e.flag - EdgeFlags::PARENT,e.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/unrecord/mod.rs at line 292
e.introduced_by,e.introduced_by(), - replacement in libpijul/src/unrecord/mod.rs at line 307
if !is_alive(txn, channel, up)? {if !is_alive(txn, channel, &up)? { - replacement in libpijul/src/unrecord/mod.rs at line 322
if !is_alive(txn, channel, down)? {if !is_alive(txn, channel, &down)? { - replacement in libpijul/src/unrecord/mod.rs at line 333
let parent = txn.find_block_end(channel, parent.dest)?;let parent = txn.find_block_end(channel, parent.dest())?; - replacement in libpijul/src/unrecord/mod.rs at line 335
ws.parents.insert(parent);ws.parents.insert(*parent); - replacement in libpijul/src/unrecord/mod.rs at line 363
let ext = txn.get_external(change_id)?.unwrap();let ext: Hash = txn.get_external(&change_id)?.unwrap().into(); - replacement in libpijul/src/unrecord/mod.rs at line 395
change: txn.get_external(b.change)?,change: txn.get_external(&b.change)?.map(From::from), - replacement in libpijul/src/unrecord/mod.rs at line 401
if e.flag.contains(EdgeFlags::PARENT)|| e.dest != b.start_pos()|| e.introduced_by.is_root()|| e.introduced_by == current_idif e.flag().contains(EdgeFlags::PARENT)|| e.dest() != b.start_pos()|| e.introduced_by().is_root()|| e.introduced_by() == current_id - replacement in libpijul/src/unrecord/mod.rs at line 415
stack.push(e.introduced_by)stack.push(e.introduced_by()) - replacement in libpijul/src/unrecord/mod.rs at line 434
.change_deletes_position(|c| txn.get_external(c).unwrap(), s, pos).change_deletes_position(|c| txn.get_external(&c).unwrap().map(From::from), s, pos) - replacement in libpijul/src/unrecord/mod.rs at line 439[18.243801]→[18.26493:26555](∅→∅),[18.26555]→[18.243862:243892](∅→∅),[18.243862]→[18.243862:243892](∅→∅)
} else if let Some(i) = txn.get_internal(next)? {stack.push(i)} else if let Some(i) = txn.get_internal(&next.into())? {stack.push(*i) - replacement in libpijul/src/unrecord/mod.rs at line 460[18.2699]→[18.245689:245741](∅→∅),[18.245689]→[18.245689:245741](∅→∅),[18.245741]→[18.3008:3070](∅→∅),[18.3070]→[18.2700:2745](∅→∅),[18.9132]→[18.2700:2745](∅→∅),[18.2745]→[18.26697:26779](∅→∅)
if e.flag.contains(EdgeFlags::PARENT) {let u = txn.find_block_end(channel, e.dest)?;e.flag -= EdgeFlags::PARENT;del_graph_with_rev(txn, channel, e.flag, u, v, e.introduced_by)?;if e.flag().contains(EdgeFlags::PARENT) {let u = *txn.find_block_end(channel, e.dest())?;e -= EdgeFlags::PARENT;del_graph_with_rev(txn, channel, e.flag(), u, v, e.introduced_by())?; - replacement in libpijul/src/unrecord/mod.rs at line 465
let w = txn.find_block(channel, e.dest)?;del_graph_with_rev(txn, channel, e.flag, v, w, e.introduced_by)?;let w = *txn.find_block(channel, e.dest())?;del_graph_with_rev(txn, channel, e.flag(), v, w, e.introduced_by())?; - replacement in libpijul/src/unrecord/mod.rs at line 480
ws.stack.push(txn.find_block(channel, to)?);ws.stack.push(*txn.find_block(channel, to)?); - replacement in libpijul/src/unrecord/mod.rs at line 489
if !(e.introduced_by == change_id || e.flag & EdgeFlags::bp() == EdgeFlags::PARENT) {if !(e.introduced_by() == change_id || e.flag() & EdgeFlags::bp() == EdgeFlags::PARENT) { - replacement in libpijul/src/unrecord/mod.rs at line 492
if e.flag.contains(EdgeFlags::PARENT) {ws.stack.push(txn.find_block_end(channel, e.dest)?)if e.flag().contains(EdgeFlags::PARENT) {ws.stack.push(*txn.find_block_end(channel, e.dest())?) - replacement in libpijul/src/unrecord/mod.rs at line 495
ws.stack.push(txn.find_block(channel, e.dest)?)ws.stack.push(*txn.find_block(channel, e.dest())?) - replacement in libpijul/src/unrecord/mod.rs at line 497
if e.introduced_by == change_id {ws.del_edges.push((v, e))if e.introduced_by() == change_id {ws.del_edges.push((v, *e)) - replacement in libpijul/src/unrecord/mod.rs at line 515
let change_hash = txn.get_external(change_id)?.unwrap();let change_hash: Hash = txn.get_external(&change_id)?.unwrap().into(); - edit in libpijul/src/tests/unrecord.rs at line 38
None, - edit in libpijul/src/tests/unrecord.rs at line 78
debug_to_file(&txn, &channel.borrow(), "debug_un0")?; - edit in libpijul/src/tests/unrecord.rs at line 80
debug_to_file(&txn, &channel.borrow(), "debug_un1")?; - edit in libpijul/src/tests/unrecord.rs at line 88
None, - replacement in libpijul/src/tests/unrecord.rs at line 138
output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true, None)?; - replacement in libpijul/src/tests/unrecord.rs at line 145
assert_eq!(repo.list_files(), vec!["file"]);// Checking that unrecord doesn't delete `dir`, and moves `file`// back to the root.let mut files = repo.list_files();files.sort();assert_eq!(files, vec!["dir", "file"]); - replacement in libpijul/src/tests/unrecord.rs at line 191
apply::apply_change(&changes, &mut txn2, &mut channel2, h0)?;output::output_repository_no_pending(&mut repo2, &changes, &mut txn2, &mut channel2, "", true)?;apply::apply_change(&changes, &mut txn3, &mut channel3, h0)?;output::output_repository_no_pending(&mut repo3, &changes, &mut txn3, &mut channel3, "", true)?;apply::apply_change(&changes, &mut txn2, &mut channel2, &h0)?;output::output_repository_no_pending(&mut repo2, &changes, &mut txn2, &mut channel2, "", true, None)?;apply::apply_change(&changes, &mut txn3, &mut channel3, &h0)?;output::output_repository_no_pending(&mut repo3, &changes, &mut txn3, &mut channel3, "", true, None)?; - replacement in libpijul/src/tests/unrecord.rs at line 226
apply::apply_change(&changes, &mut txn, &mut channel, h2)?;apply::apply_change(&changes, &mut txn, &mut channel, h3)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true)?;apply::apply_change(&changes, &mut txn, &mut channel, &h2)?;apply::apply_change(&changes, &mut txn, &mut channel, &h3)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true, None)?; - replacement in libpijul/src/tests/unrecord.rs at line 267
apply::apply_change(&changes, &mut txn2, &mut channel2, h0)?;output::output_repository_no_pending(&mut repo2, &changes, &mut txn2, &mut channel2, "", true)?;apply::apply_change(&changes, &mut txn2, &mut channel2, &h0)?;output::output_repository_no_pending(&mut repo2, &changes, &mut txn2, &mut channel2, "", true, None)?; - replacement in libpijul/src/tests/unrecord.rs at line 292
apply::apply_change(&changes, &mut txn, &mut channel, h2)?;apply::apply_change(&changes, &mut txn, &mut channel, &h2)?; - edit in libpijul/src/tests/unrecord.rs at line 304
None, - replacement in libpijul/src/tests/unrecord.rs at line 335
apply::apply_change(&changes, &mut txn2, &mut channel2, h1)?;apply::apply_change(&changes, &mut txn2, &mut channel2, &h1)?; - edit in libpijul/src/tests/unrecord.rs at line 348
None, - replacement in libpijul/src/tests/unrecord.rs at line 378
output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true, None)?; - edit in libpijul/src/tests/unrecord.rs at line 395
None, - replacement in libpijul/src/tests/unrecord.rs at line 478
output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true)?;let files = repo.list_files();if !files.is_empty() {panic!("Files should be empty {:?}", files);}output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true, None)?;// Checking that unrecord doesn't delete files on the filesystem,// but updates the tree/revtree tables.let mut files = repo.list_files();files.sort();assert_eq!(files, &["dir", "dir/file"]); - edit in libpijul/src/tests/unrecord.rs at line 525
None, - edit in libpijul/src/tests/unrecord.rs at line 543
None, - replacement in libpijul/src/tests/unrecord.rs at line 549
if !files.is_empty() {panic!("Files should be empty {:?}", files);}// Unrecording a file addition shouldn't delete the file.assert_eq!(files, &["file"]); - edit in libpijul/src/tests/unrecord.rs at line 552
- replacement in libpijul/src/tests/unrecord.rs at line 580
apply::apply_change(&changes, &mut txn, &mut channel, b)?;apply::apply_change(&changes, &mut txn, &mut channel, &b)?; - edit in libpijul/src/tests/unrecord.rs at line 589
None, - edit in libpijul/src/tests/unrecord.rs at line 624
None, - replacement in libpijul/src/tests/unrecord.rs at line 706
apply::apply_change(&changes, &mut txn, &mut channel, h_inv)?;apply::apply_change(&changes, &mut txn, &mut channel, &h_inv)?; - edit in libpijul/src/tests/unrecord.rs at line 714
None, - edit in libpijul/src/tests/unrecord.rs at line 733
None, - replacement in libpijul/src/tests/unrecord.rs at line 740
let r = repo.read_file("file", &mut buf);repo.read_file("file", &mut buf).unwrap(); - replacement in libpijul/src/tests/unrecord.rs at line 742
assert!(r.is_err())assert_eq!(std::str::from_utf8(&buf), Ok("a\nb\nc\n")); - replacement in libpijul/src/tests/unrecord.rs at line 771
apply::apply_change(&changes, &mut txn, &mut channel2, h0)?;apply::apply_change(&changes, &mut txn, &mut channel2, &h0)?; - replacement in libpijul/src/tests/unrecord.rs at line 789
apply::apply_change(&changes, &mut txn, &mut channel, h2)?;apply::apply_change(&changes, &mut txn, &mut channel, &h2)?; - edit in libpijul/src/tests/unrecord.rs at line 804
None, - replacement in libpijul/src/tests/unrecord.rs at line 834
apply::apply_change(&changes, &mut txn, &mut channel2, h0)?;apply::apply_change(&changes, &mut txn, &mut channel2, &h0)?; - replacement in libpijul/src/tests/unrecord.rs at line 856
apply::apply_change(&changes, &mut txn, &mut channel, h2)?;apply::apply_change(&changes, &mut txn, &mut channel, &h2)?; - edit in libpijul/src/tests/unrecord.rs at line 871
None, - replacement in libpijul/src/tests/unrecord.rs at line 879
apply::apply_change(&changes, &mut txn, &mut channel2, h1)?;apply::apply_change(&changes, &mut txn, &mut channel2, &h1)?; - replacement in libpijul/src/tests/unrecord.rs at line 898
apply::apply_change(&changes, &mut txn, &mut channel2, r).unwrap();apply::apply_change(&changes, &mut txn, &mut channel2, &r).unwrap(); - edit in libpijul/src/tests/unrecord.rs at line 912
None, - replacement in libpijul/src/tests/unrecord.rs at line 941
apply::apply_change(&changes, &mut txn, &mut channel2, h0)?;apply::apply_change(&changes, &mut txn, &mut channel2, &h0)?; - replacement in libpijul/src/tests/unrecord.rs at line 953
apply::apply_change(&changes, &mut txn, &mut channel, h2)?;apply::apply_change(&changes, &mut txn, &mut channel, &h2)?; - replacement in libpijul/src/tests/rollback.rs at line 5
fn rollback_conflict_resolution_simple() -> Result<(), anyhow::Error> {fn rollback_conflict_resolution_simple() { - replacement in libpijul/src/tests/rollback.rs at line 11
let env = pristine::sanakirja::Pristine::new_anon()?;let env = pristine::sanakirja::Pristine::new_anon().unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 15
let mut channela = txn.open_or_create_channel("main")?;let mut channela = txn.open_or_create_channel("main").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 19
txn.add_file("file")?;record_all(&mut repo, &changes, &mut txn, &mut channela, "")?;txn.add_file("file").unwrap();record_all(&mut repo, &changes, &mut txn, &mut channela, "").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 22
let mut channelb = txn.fork(&channela, "other")?;let mut channelb = txn.fork(&channela, "other").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 25
w.write_all(b"a\nx\nb\n")?;w.write_all(b"a\nx\nb\n").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 27
})?;let ha = record_all(&mut repo, &changes, &mut txn, &mut channela, "")?;}).unwrap();let ha = record_all(&mut repo, &changes, &mut txn, &mut channela, "").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 31
w.write_all(b"a\ny\nb\n")?;w.write_all(b"a\ny\nb\n").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 33
})?;let hb = record_all(&mut repo, &changes, &mut txn, &mut channelb, "")?;}).unwrap();let hb = record_all(&mut repo, &changes, &mut txn, &mut channelb, "").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 36
apply::apply_change(&changes, &mut txn, &mut channelb, ha)?;apply::apply_change(&changes, &mut txn, &mut channela, hb)?;apply::apply_change(&changes, &mut txn, &mut channelb, &ha).unwrap();apply::apply_change(&changes, &mut txn, &mut channela, &hb).unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 39
debug_to_file(&txn, &channela.borrow(), "debuga")?;debug_to_file(&txn, &channelb.borrow(), "debugb")?;debug_to_file(&txn, &channela.borrow(), "debuga").unwrap();debug_to_file(&txn, &channelb.borrow(), "debugb").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 42
output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channela, "", true)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channela, "", true, None).unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 44
repo.read_file("file", &mut buf)?;repo.read_file("file", &mut buf).unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 48
let conflict: Vec<_> = std::str::from_utf8(&buf)?.lines().collect();let conflict: Vec<_> = std::str::from_utf8(&buf).unwrap().lines().collect(); - replacement in libpijul/src/tests/rollback.rs at line 51
writeln!(w, "{}", l)?writeln!(w, "{}", l).unwrap() - replacement in libpijul/src/tests/rollback.rs at line 54
})?;}).unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 57
repo.read_file("file", &mut buf)?;repo.read_file("file", &mut buf).unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 59
let resb = record_all(&mut repo, &changes, &mut txn, &mut channela, "")?;debug_to_file(&txn, &channela.borrow(), "debugres")?;let resb = record_all(&mut repo, &changes, &mut txn, &mut channela, "").unwrap();debug_to_file(&txn, &channela.borrow(), "debugres").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 72
let h_inv = changes.save_change(&p_inv)?;apply::apply_change(&changes, &mut txn, &mut channela, h_inv)?;debug_to_file(&txn, &channela.borrow(), "debug")?;Ok(())let h_inv = changes.save_change(&p_inv).unwrap();apply::apply_change(&changes, &mut txn, &mut channela, &h_inv).unwrap();debug_to_file(&txn, &channela.borrow(), "debug").unwrap(); - replacement in libpijul/src/tests/rollback.rs at line 109
apply::apply_change(&changes, &mut txn, &mut channelb, ha)?;apply::apply_change(&changes, &mut txn, &mut channela, hb)?;apply::apply_change(&changes, &mut txn, &mut channelb, &ha)?;apply::apply_change(&changes, &mut txn, &mut channela, &hb)?; - replacement in libpijul/src/tests/rollback.rs at line 115
output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channela, "", true)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channela, "", true, None)?; - replacement in libpijul/src/tests/rollback.rs at line 146
apply::apply_change(&changes, &mut txn, &mut channelb, h_inv)?;apply::apply_change(&changes, &mut txn, &mut channelb, &h_inv)?; - replacement in libpijul/src/tests/rm_file.rs at line 34
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/rm_file.rs at line 42
None, - replacement in libpijul/src/tests/rm_file.rs at line 53
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/rm_file.rs at line 62
None, - replacement in libpijul/src/tests/performance.rs at line 71
fn linear_context_repair() -> Result<(), anyhow::Error> {fn linear_context_repair() { - replacement in libpijul/src/tests/performance.rs at line 80
let env = pristine::sanakirja::Pristine::new_anon()?;let env = pristine::sanakirja::Pristine::new_anon().unwrap(); - replacement in libpijul/src/tests/performance.rs at line 84
txn.add_file("file")?;txn.add_file("file").unwrap(); - replacement in libpijul/src/tests/performance.rs at line 87[18.6256]→[18.280761:280777](∅→∅),[18.12880]→[18.280761:280777](∅→∅),[18.280761]→[18.280761:280777](∅→∅)
let n = 10;let n = 20; - replacement in libpijul/src/tests/performance.rs at line 91
writeln!(w, "{}", j)?;writeln!(w, "{}", j).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 93
w.write_all(&contents[..])?;w.write_all(&contents[..]).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 95
writeln!(w, "{}", j)?;writeln!(w, "{}", j).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 103
let mut channel2 = txn.fork(&channel, "fork")?;let mut channel2 = txn.fork(&channel, "fork").unwrap(); - replacement in libpijul/src/tests/performance.rs at line 106
writeln!(w, "{}", j)?;writeln!(w, "{}", j).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 108
w.write_all(b"TxnTX\nYYYYY\nZZZZZ\n")?;w.write_all(b"TxnTX\nYYYYY\nZZZZZ\n").unwrap(); - replacement in libpijul/src/tests/performance.rs at line 110
writeln!(w, "{}", j)?;writeln!(w, "{}", j).unwrap(); - edit in libpijul/src/tests/performance.rs at line 115
- replacement in libpijul/src/tests/performance.rs at line 117
debug_to_file(&txn, &channel2.borrow(), "debug_bob0").unwrap();::sanakirja::debug::debug(&txn.txn, &[txn.graph(&channel.borrow()),txn.graph(&channel2.borrow()),], "debug_sanakirja", true); - edit in libpijul/src/tests/performance.rs at line 123
debug_to_file(&txn, &channel2.borrow(), "debug_bob0").unwrap(); - replacement in libpijul/src/tests/performance.rs at line 127
writeln!(w, "{}", j)?;writeln!(w, "{}", j).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 130
writeln!(w, "{}", j)?;writeln!(w, "{}", j).unwrap(); - edit in libpijul/src/tests/performance.rs at line 136
- replacement in libpijul/src/tests/performance.rs at line 139
txn.apply_change(&changes, &mut channel, p1)?;txn.apply_change(&changes, &mut channel, &p1).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 142
txn.apply_change(&changes, &mut channel2, p2)?;txn.apply_change(&changes, &mut channel2, &p2).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 154
let original_edges = 8 * n + 18;let original_edges = 8 * n + 27; - replacement in libpijul/src/tests/performance.rs at line 156
panic!("{} > {}", m, original_edges)panic!("{}: {} > {}", n, m, original_edges) - replacement in libpijul/src/tests/performance.rs at line 167
let original_edges = 8 * n + 18;let original_edges = 8 * n + 27; - replacement in libpijul/src/tests/performance.rs at line 169
panic!("{} > {}", m, original_edges)panic!("{}: {} > {}", n, m, original_edges) - edit in libpijul/src/tests/performance.rs at line 173
Ok(()) - replacement in libpijul/src/tests/partial.rs at line 35
let key = txn.get_inodes(inode, None).unwrap().unwrap();let key = txn.get_inodes(&inode, None).unwrap().unwrap(); - replacement in libpijul/src/tests/partial.rs at line 37
.log_for_path(&channel.borrow(), key, 0).log_for_path(&channel.borrow(), *key, 0) - replacement in libpijul/src/tests/partial.rs at line 91
apply::apply_change(&changes, &mut txn2, &mut channel, h).unwrap();apply::apply_change(&changes, &mut txn2, &mut channel, &h).unwrap(); - edit in libpijul/src/tests/partial.rs at line 99
None, - replacement in libpijul/src/tests/partial.rs at line 109
apply::apply_change(&changes, &mut txn2, &mut channel, h2).unwrap();apply::apply_change(&changes, &mut txn2, &mut channel, &h2).unwrap(); - edit in libpijul/src/tests/partial.rs at line 117
None, - replacement in libpijul/src/tests/mod.rs at line 76
apply::apply_local_change(txn, channel, &change0, hash, &rec.updatables)?;apply::apply_local_change(txn, channel, &change0, &hash, &rec.updatables)?; - replacement in libpijul/src/tests/mod.rs at line 91
output::output_repository_no_pending(repo, changes, txn, channel, "", true).unwrap();output::output_repository_no_pending(repo, changes, txn, channel, "", true, None).unwrap(); - replacement in libpijul/src/tests/missing_context.rs at line 44
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/missing_context.rs at line 52
None, - replacement in libpijul/src/tests/missing_context.rs at line 94
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h2)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h2)?; - edit in libpijul/src/tests/missing_context.rs at line 104
None, - replacement in libpijul/src/tests/missing_context.rs at line 112
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h2)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h2)?; - replacement in libpijul/src/tests/missing_context.rs at line 155[18.7485]→[18.295552:295637](∅→∅),[18.14869]→[18.295552:295637](∅→∅),[18.295552]→[18.295552:295637](∅→∅)
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h).unwrap(); - replacement in libpijul/src/tests/missing_context.rs at line 162
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?; - edit in libpijul/src/tests/missing_context.rs at line 174
None, - replacement in libpijul/src/tests/missing_context.rs at line 237
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/missing_context.rs at line 245
None, - replacement in libpijul/src/tests/missing_context.rs at line 279
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/missing_context.rs at line 287
None, - replacement in libpijul/src/tests/missing_context.rs at line 307
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, inv_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &inv_h)?; - edit in libpijul/src/tests/missing_context.rs at line 315
None, - replacement in libpijul/src/tests/filesystem.rs at line 18
std::fs::create_dir_all(f.path())?;let env = pristine::sanakirja::Pristine::new(f.path())?;let env = pristine::sanakirja::Pristine::new(f.path().join("pristine"))?; - replacement in libpijul/src/tests/filesystem.rs at line 26
apply::apply_change(&changes, &mut txn, &mut channel, p)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true)apply::apply_change(&changes, &mut txn, &mut channel, &p)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true, None) - replacement in libpijul/src/tests/filesystem.rs at line 55
let env = pristine::sanakirja::Pristine::new(f.path())?;let env = pristine::sanakirja::Pristine::new(f.path().join("pristine"))?; - replacement in libpijul/src/tests/filesystem.rs at line 64
apply::apply_change(&changes, &mut txn, &mut channel, p)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true)apply::apply_change(&changes, &mut txn, &mut channel, &p)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true, None) - replacement in libpijul/src/tests/filesystem.rs at line 91
let env = pristine::sanakirja::Pristine::new(f.path())?;let env = pristine::sanakirja::Pristine::new(f.path().join("pristine"))?; - replacement in libpijul/src/tests/filesystem.rs at line 99
apply::apply_change(&changes, &mut txn, &mut channel, p)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true)apply::apply_change(&changes, &mut txn, &mut channel, &p)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true, None) - replacement in libpijul/src/tests/filesystem.rs at line 123
let env = pristine::sanakirja::Pristine::new(f.path())?;let env = pristine::sanakirja::Pristine::new(f.path().join("pristine"))?; - replacement in libpijul/src/tests/filesystem.rs at line 137
apply::apply_change(&changes, &mut txn, &mut channel, p)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true)apply::apply_change(&changes, &mut txn, &mut channel, &p)?;output::output_repository_no_pending(&mut repo, &changes, &mut txn, &mut channel, "", true, None) - replacement in libpijul/src/tests/file_conflicts.rs at line 46
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 54
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 80
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 89
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 97
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 106
None, - edit in libpijul/src/tests/file_conflicts.rs at line 118
None, - edit in libpijul/src/tests/file_conflicts.rs at line 131
None, - edit in libpijul/src/tests/file_conflicts.rs at line 148
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 155
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_solution)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_solution)?; - edit in libpijul/src/tests/file_conflicts.rs at line 163
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 211
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 219
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 246
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 255
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 259
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 268
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 301
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, solution_alice)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &solution_alice)?; - edit in libpijul/src/tests/file_conflicts.rs at line 309
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 357
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 365
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 394
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, init_h).unwrap();apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 402
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 416
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, bob_h)?;apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, alice_h)?;apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &bob_h)?;apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &alice_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 425
None, - edit in libpijul/src/tests/file_conflicts.rs at line 454
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 461
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, charlie_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &charlie_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 471
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 488
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, charlie_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &charlie_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 498
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 540
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 548
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 573
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 583
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 590
OwnedPathId {&OwnedPathId { - replacement in libpijul/src/tests/file_conflicts.rs at line 612
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 621
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 625
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_solution)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_solution)?; - edit in libpijul/src/tests/file_conflicts.rs at line 634
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 672
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 680
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 707
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 718
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 742
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 751
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 755
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_solution)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_solution)?; - edit in libpijul/src/tests/file_conflicts.rs at line 764
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 804
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 812
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 839
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 849
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 873
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 882
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 887
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_solution)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_solution)?; - edit in libpijul/src/tests/file_conflicts.rs at line 896
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 941
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 949
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 954
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, init_h).unwrap();apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 962
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1005
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, charlie_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &charlie_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 1016
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1048
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, charlie_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &charlie_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 1058
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1067
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_solution)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_solution)?; - edit in libpijul/src/tests/file_conflicts.rs at line 1076
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1083
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, bob_h)?;apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &bob_h)?; - replacement in libpijul/src/tests/file_conflicts.rs at line 1086
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, alice_h)?;apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &alice_h)?; - edit in libpijul/src/tests/file_conflicts.rs at line 1095
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1107
alice_solution,&alice_solution, - edit in libpijul/src/tests/file_conflicts.rs at line 1117
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1170
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 1178
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1185
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &alice_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 1194
None, - edit in libpijul/src/tests/file_conflicts.rs at line 1214
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1222
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_resolution).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_resolution).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 1231
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1240
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, init_h).unwrap();apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, alice_h).unwrap();apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &init_h).unwrap();apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &alice_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 1249
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1270
apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, bob_h).unwrap();apply::apply_change(&changes, &mut txn_charlie, &mut channel_charlie, &bob_h).unwrap(); - replacement in libpijul/src/tests/file_conflicts.rs at line 1277
bob_resolution,&bob_resolution, - edit in libpijul/src/tests/file_conflicts.rs at line 1288
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1298
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, charlie_h).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &charlie_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 1307
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1316
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, charlie_h).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &charlie_h).unwrap(); - edit in libpijul/src/tests/file_conflicts.rs at line 1326
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1361
.apply_change(&changes, &mut channel_bob, init).apply_change(&changes, &mut channel_bob, &init) - edit in libpijul/src/tests/file_conflicts.rs at line 1370
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1393
.apply_change(&changes, &mut channel_bob, alice_h).apply_change(&changes, &mut channel_bob, &alice_h) - edit in libpijul/src/tests/file_conflicts.rs at line 1403
None, - edit in libpijul/src/tests/file_conflicts.rs at line 1426
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1435
.apply_change(&changes, &mut channel_alice, bob_h).apply_change(&changes, &mut channel_alice, &bob_h) - edit in libpijul/src/tests/file_conflicts.rs at line 1445
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1454
.apply_change(&changes, &mut channel_alice, resolution).apply_change(&changes, &mut channel_alice, &resolution) - edit in libpijul/src/tests/file_conflicts.rs at line 1463
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1499
.apply_change(&changes, &mut channel_bob, init).apply_change(&changes, &mut channel_bob, &init) - edit in libpijul/src/tests/file_conflicts.rs at line 1508
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1540
.apply_change(&changes, &mut channel_alice, bob_h1).apply_change(&changes, &mut channel_alice, &bob_h1) - replacement in libpijul/src/tests/file_conflicts.rs at line 1545
.apply_change(&changes, &mut channel_alice, bob_h2).apply_change(&changes, &mut channel_alice, &bob_h2) - edit in libpijul/src/tests/file_conflicts.rs at line 1566
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1600
.apply_change(&changes, &mut channel_bob, init).apply_change(&changes, &mut channel_bob, &init) - edit in libpijul/src/tests/file_conflicts.rs at line 1609
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1632
.apply_change(&changes, &mut channel_bob, alice_h).apply_change(&changes, &mut channel_bob, &alice_h) - edit in libpijul/src/tests/file_conflicts.rs at line 1642
None, - edit in libpijul/src/tests/file_conflicts.rs at line 1659
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1668
.apply_change(&changes, &mut channel_alice, bob_h).apply_change(&changes, &mut channel_alice, &bob_h) - edit in libpijul/src/tests/file_conflicts.rs at line 1678
None, - replacement in libpijul/src/tests/file_conflicts.rs at line 1687
.apply_change(&changes, &mut channel_alice, resolution).apply_change(&changes, &mut channel_alice, &resolution) - edit in libpijul/src/tests/file_conflicts.rs at line 1696
None, - replacement in libpijul/src/tests/conflict.rs at line 25
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 33
None, - replacement in libpijul/src/tests/conflict.rs at line 61
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 69
None, - replacement in libpijul/src/tests/conflict.rs at line 121
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 129
None, - replacement in libpijul/src/tests/conflict.rs at line 137
apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 145
None, - edit in libpijul/src/tests/conflict.rs at line 161
None, - replacement in libpijul/src/tests/conflict.rs at line 191
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 199
None, - replacement in libpijul/src/tests/conflict.rs at line 211
apply::apply_change(&changes, &mut txn, &mut channel_charlie, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 219
None, - replacement in libpijul/src/tests/conflict.rs at line 255
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 263
None, - replacement in libpijul/src/tests/conflict.rs at line 309
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, charlie_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &charlie_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 318
None, - replacement in libpijul/src/tests/conflict.rs at line 325
apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 333
None, - replacement in libpijul/src/tests/conflict.rs at line 367
apply::apply_change(&changes, &mut txn, &mut channel_charlie, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, bob_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, &alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, &bob_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 376
None, - replacement in libpijul/src/tests/conflict.rs at line 383
apply::apply_change(&changes, &mut txn, &mut channel_charlie, resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, resolution2).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, &resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, &resolution2).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 392
None, - replacement in libpijul/src/tests/conflict.rs at line 426
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 434
None, - replacement in libpijul/src/tests/conflict.rs at line 457
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 465
None, - replacement in libpijul/src/tests/conflict.rs at line 497
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 505
None, - replacement in libpijul/src/tests/conflict.rs at line 511
apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 519
None, - replacement in libpijul/src/tests/conflict.rs at line 549
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 557
None, - replacement in libpijul/src/tests/conflict.rs at line 580
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 588
None, - edit in libpijul/src/tests/conflict.rs at line 631
None, - replacement in libpijul/src/tests/conflict.rs at line 640
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution)?; - edit in libpijul/src/tests/conflict.rs at line 649
None, - replacement in libpijul/src/tests/conflict.rs at line 682
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 690
None, - replacement in libpijul/src/tests/conflict.rs at line 713
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 721
None, - edit in libpijul/src/tests/conflict.rs at line 752
None, - replacement in libpijul/src/tests/conflict.rs at line 760
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution)?; - edit in libpijul/src/tests/conflict.rs at line 769
None, - replacement in libpijul/src/tests/conflict.rs at line 806
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 814
None, - replacement in libpijul/src/tests/conflict.rs at line 848
apply::apply_change(&changes, &mut txn, &mut channel_alice, *bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 857
None, - edit in libpijul/src/tests/conflict.rs at line 894
None, - replacement in libpijul/src/tests/conflict.rs at line 904
apply::apply_change(&changes, &mut txn, &mut channel_bob, *alice_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &*alice_h)?; - replacement in libpijul/src/tests/conflict.rs at line 906
apply::apply_change(&changes, &mut txn, &mut channel_bob, conflict_edits)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &conflict_edits)?; - edit in libpijul/src/tests/conflict.rs at line 914
None, - replacement in libpijul/src/tests/conflict.rs at line 950
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 958
None, - replacement in libpijul/src/tests/conflict.rs at line 985
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 993
None, - replacement in libpijul/src/tests/conflict.rs at line 1036
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1044
None, - replacement in libpijul/src/tests/conflict.rs at line 1051
apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1060
None, - replacement in libpijul/src/tests/conflict.rs at line 1090
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 1098
None, - replacement in libpijul/src/tests/conflict.rs at line 1125
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 1133
None, - replacement in libpijul/src/tests/conflict.rs at line 1181
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1189
None, - replacement in libpijul/src/tests/conflict.rs at line 1196
apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1205
None, - replacement in libpijul/src/tests/conflict.rs at line 1338
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 1346
None, - replacement in libpijul/src/tests/conflict.rs at line 1373
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 1381
None, - replacement in libpijul/src/tests/conflict.rs at line 1399
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1407
None, - replacement in libpijul/src/tests/conflict.rs at line 1415
apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1423
None, - replacement in libpijul/src/tests/conflict.rs at line 1462
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 1470
None, - replacement in libpijul/src/tests/conflict.rs at line 1500
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 1508
None, - replacement in libpijul/src/tests/conflict.rs at line 1525
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1533
None, - replacement in libpijul/src/tests/conflict.rs at line 1552
apply::apply_change(&changes, &mut txn, &mut channel_alice, resolution_bob).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_alice, &resolution_bob).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1560
None, - replacement in libpijul/src/tests/conflict.rs at line 1568
apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution_alice).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution_alice).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1576
None, - replacement in libpijul/src/tests/conflict.rs at line 1630
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, p_alice[0]).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &p_alice[0]).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1638
None, - replacement in libpijul/src/tests/conflict.rs at line 1655
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, *p).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, p).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1668
None, - edit in libpijul/src/tests/conflict.rs at line 1692
None, - replacement in libpijul/src/tests/conflict.rs at line 1700
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, p_bob).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &p_bob).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1709
None, - replacement in libpijul/src/tests/conflict.rs at line 1717
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, resolution).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1725
None, - replacement in libpijul/src/tests/conflict.rs at line 1774
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, p_alice[0]).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &p_alice[0]).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1782
None, - replacement in libpijul/src/tests/conflict.rs at line 1796
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, *p).unwrap();apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, p).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1806
None, - edit in libpijul/src/tests/conflict.rs at line 1829
None, - replacement in libpijul/src/tests/conflict.rs at line 1837
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, p_bob).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, resolution).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &p_bob).unwrap();apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 1846
None, - replacement in libpijul/src/tests/conflict.rs at line 1878
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 1886
None, - replacement in libpijul/src/tests/conflict.rs at line 1898
apply::apply_change(&changes, &mut txn, &mut channel_charlie, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 1906
None, - replacement in libpijul/src/tests/conflict.rs at line 1940
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 1948
None, - edit in libpijul/src/tests/conflict.rs at line 1966
None, - replacement in libpijul/src/tests/conflict.rs at line 1971
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, resolution)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &resolution)?; - replacement in libpijul/src/tests/conflict.rs at line 1983
apply::apply_change(&changes, &mut txn, &mut channel_charlie, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &bob_h)?; - replacement in libpijul/src/tests/conflict.rs at line 1985[18.22712]→[18.419423:419500](∅→∅),[18.28918]→[18.419423:419500](∅→∅),[18.419423]→[18.419423:419500](∅→∅)
apply::apply_change(&changes, &mut txn, &mut channel_charlie, alice_h)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &alice_h)?; - replacement in libpijul/src/tests/conflict.rs at line 1987[18.22792]→[18.419577:419657](∅→∅),[18.28989]→[18.419577:419657](∅→∅),[18.419577]→[18.419577:419657](∅→∅)
apply::apply_change(&changes, &mut txn, &mut channel_charlie, resolution)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &resolution)?; - replacement in libpijul/src/tests/conflict.rs at line 2016
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 2024
None, - replacement in libpijul/src/tests/conflict.rs at line 2036
apply::apply_change(&changes, &mut txn, &mut channel_charlie, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 2044
None, - replacement in libpijul/src/tests/conflict.rs at line 2083
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 2091
None, - replacement in libpijul/src/tests/conflict.rs at line 2114
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 2122
None, - replacement in libpijul/src/tests/conflict.rs at line 2141
apply::apply_change(&changes, &mut txn, &mut channel_bob, alices_resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alices_resolution).unwrap(); - replacement in libpijul/src/tests/conflict.rs at line 2143
apply::apply_change(&changes, &mut txn, &mut channel_bob, charlie_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &charlie_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 2153
None, - edit in libpijul/src/tests/conflict.rs at line 2180
None, - edit in libpijul/src/tests/conflict.rs at line 2198
None, - replacement in libpijul/src/tests/conflict.rs at line 2237
apply::apply_change(&changes, &mut txn, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 2245
None, - replacement in libpijul/src/tests/conflict.rs at line 2291
apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h1)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h2)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, bob_h3)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h1)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h2)?;apply::apply_change(&changes, &mut txn, &mut channel_alice, &bob_h3)?; - edit in libpijul/src/tests/conflict.rs at line 2301
None, - replacement in libpijul/src/tests/conflict.rs at line 2324
apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h1).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h2).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, alice_h3).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h1).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h2).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alice_h3).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 2334
None, - replacement in libpijul/src/tests/conflict.rs at line 2356
apply::apply_change(&changes, &mut txn, &mut channel_charlie, init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, alice_h1)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, alice_h2)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, alice_h3)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, bob_h1)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, bob_h2)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, bob_h3)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &init_h)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &alice_h1)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &alice_h2)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &alice_h3)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &bob_h1)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &bob_h2)?;apply::apply_change(&changes, &mut txn, &mut channel_charlie, &bob_h3)?; - edit in libpijul/src/tests/conflict.rs at line 2370
None, - replacement in libpijul/src/tests/conflict.rs at line 2385
apply::apply_change(&changes, &mut txn, &mut channel_bob, alices_resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &alices_resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 2395
None, - replacement in libpijul/src/tests/conflict.rs at line 2403
apply::apply_change(&changes, &mut txn, &mut channel_bob, charlie_h).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_bob, &charlie_h).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 2420
None, - replacement in libpijul/src/tests/conflict.rs at line 2437
apply::apply_change(&changes, &mut txn, &mut channel_charlie, alices_resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, bobs_resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, &alices_resolution).unwrap();apply::apply_change(&changes, &mut txn, &mut channel_charlie, &bobs_resolution).unwrap(); - edit in libpijul/src/tests/conflict.rs at line 2454
None, - replacement in libpijul/src/tests/conflict.rs at line 2499
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 2507
None, - replacement in libpijul/src/tests/conflict.rs at line 2524
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, ab)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &ab)?; - edit in libpijul/src/tests/conflict.rs at line 2534
None, - replacement in libpijul/src/tests/conflict.rs at line 2588
apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, init_h)?;apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, &init_h)?; - edit in libpijul/src/tests/conflict.rs at line 2596
None, - replacement in libpijul/src/tests/conflict.rs at line 2609
apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, &bob_h)?; - edit in libpijul/src/tests/conflict.rs at line 2617
None, - replacement in libpijul/src/tests/conflict.rs at line 2627
let (inode, vertex) = x.unwrap();let (&inode, &vertex) = x.unwrap(); - replacement in libpijul/src/tests/conflict.rs at line 2631
if let Some(next) = txn.get_revtree(inode_, None).unwrap() {if let Some(next) = txn.get_revtree(&inode_, None).unwrap() { - replacement in libpijul/src/tests/conflict.rs at line 2638
if !is_alive(txn, T::graph(&channel), vertex.inode_vertex()).unwrap() {if !is_alive(txn, T::graph(txn, &channel), &vertex.inode_vertex()).unwrap() { - replacement in libpijul/src/tests/conflict.rs at line 2641
T::graph(&channel),T::graph(txn, &channel), - replacement in libpijul/src/tests/conflict.rs at line 2654
tree_path(txn, vertex)tree_path(txn, &vertex) - replacement in libpijul/src/tests/clone.rs at line 54
apply::apply_change(&changes, &mut txn2, &mut channel, *h).unwrap();apply::apply_change(&changes, &mut txn2, &mut channel, h).unwrap(); - edit in libpijul/src/tests/clone.rs at line 63
None, - replacement in libpijul/src/tests/clone.rs at line 119
apply::apply_change(&changes, &mut txn2, &mut channel, h).unwrap();apply::apply_change(&changes, &mut txn2, &mut channel, &h).unwrap(); - edit in libpijul/src/tests/clone.rs at line 127
None, - replacement in libpijul/src/tests/clone.rs at line 137
apply::apply_change(&changes, &mut txn2, &mut channel, h2).unwrap();apply::apply_change(&changes, &mut txn2, &mut channel, &h2).unwrap(); - edit in libpijul/src/tests/clone.rs at line 145
None, - replacement in libpijul/src/tests/change.rs at line 76
apply::apply_local_change(&mut txn, &mut channel, &change0, hash0, &rec.updatables)?;apply::apply_local_change(&mut txn, &mut channel, &change0, &hash0, &rec.updatables)?; - replacement in libpijul/src/tests/change.rs at line 129
apply::apply_local_change(txn, channel, &change0, hash, &rec.updatables)?;apply::apply_local_change(txn, channel, &change0, &hash, &rec.updatables)?; - replacement in libpijul/src/tests/change.rs at line 174
apply::apply_change(&store, &mut txn2, &mut channel2, h0)?;apply::apply_change(&store, &mut txn2, &mut channel2, h1)?;apply::apply_change(&store, &mut txn2, &mut channel2, h2)?;output::output_repository_no_pending(&mut repo2, &store, &mut txn2, &mut channel2, "", true)?;apply::apply_change(&store, &mut txn2, &mut channel2, &h0)?;apply::apply_change(&store, &mut txn2, &mut channel2, &h1)?;apply::apply_change(&store, &mut txn2, &mut channel2, &h2)?;output::output_repository_no_pending(&mut repo2, &store, &mut txn2, &mut channel2, "", true, None)?; - replacement in libpijul/src/tests/change.rs at line 182
apply::apply_change(&store, &mut txn2, &mut channel2, h3)?;output::output_repository_no_pending(&mut repo2, &store, &mut txn2, &mut channel2, "", true)?;apply::apply_change(&store, &mut txn2, &mut channel2, &h3)?;output::output_repository_no_pending(&mut repo2, &store, &mut txn2, &mut channel2, "", true, None)?; - replacement in libpijul/src/tests/change.rs at line 227
error!("change0.changes = {:#?}", change0.changes);error!("change1.changes = {:#?}", change1.changes);trace!("change0.changes = {:#?}", change0.changes);trace!("change1.changes = {:#?}", change1.changes); - replacement in libpijul/src/tests/change.rs at line 231
error!("change0: {:#?}", a);error!("change1: {:#?}", b);trace!("change0: {:#?}", a);trace!("change1: {:#?}", b);for (a, b) in a.iter().zip(b.iter()) {if a != b {error!("change0 -> {:#?}", a);error!("change1 -> {:#?}", b);}} - replacement in libpijul/src/tests/add_file.rs at line 37
let (key, meta, file) = it.next().unwrap().unwrap();let (key, _, meta, file) = it.next().unwrap().unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 42
let (file_key, _, _) = it.next().unwrap().unwrap();let (file_key, _, _, _) = it.next().unwrap().unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 98
fn del_file_test() -> Result<(), anyhow::Error> {fn del_file_test() { - replacement in libpijul/src/tests/add_file.rs at line 104
let env = pristine::sanakirja::Pristine::new_anon()?;let env = pristine::sanakirja::Pristine::new_anon().unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 107
txn.add_file("dir/file")?;let mut channel = txn.open_or_create_channel("main")?;txn.add_file("dir/file").unwrap();let mut channel = txn.open_or_create_channel("main").unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 111
record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;record_all_output(&mut repo, &changes, &mut txn, &mut channel, "").unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 118
repo.remove_path("dir/file")?;txn.remove_file("dir")?;repo.remove_path("dir/file").unwrap();txn.remove_file("dir").unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 127
record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;record_all_output(&mut repo, &changes, &mut txn, &mut channel, "").unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 137
txn.add_file("dir2/file")?;txn.remove_file("dir2")?;txn.add_file("dir2/file").unwrap();txn.remove_file("dir2").unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 141
txn.commit()?;txn.commit().unwrap(); - replacement in libpijul/src/tests/add_file.rs at line 145
let txn = env.txn_begin()?;let txn = env.txn_begin().unwrap(); - edit in libpijul/src/tests/add_file.rs at line 152
Ok(()) - replacement in libpijul/src/tests/add_file.rs at line 181
output::output_repository_no_pending(&mut repo2, &changes, &mut txn, &mut channel, "", true)?;output::output_repository_no_pending(&mut repo2, &changes, &mut txn, &mut channel, "", true, None)?; - replacement in libpijul/src/tests/add_file.rs at line 289
apply::apply_change(&changes, &mut txn_bob, &mut channel, alice0)?;apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice0)?; - edit in libpijul/src/tests/add_file.rs at line 297
None, - replacement in libpijul/src/tests/add_file.rs at line 303
apply::apply_change(&changes, &mut txn_bob, &mut channel, alice1)?;apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice1)?; - edit in libpijul/src/tests/add_file.rs at line 311
None, - replacement in libpijul/src/tests/add_file.rs at line 362
apply::apply_change(&changes, &mut txn_bob, &mut channel, alice0)?;apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice0)?; - edit in libpijul/src/tests/add_file.rs at line 370
None, - replacement in libpijul/src/tests/add_file.rs at line 374
apply::apply_change(&changes, &mut txn_bob, &mut channel, alice1)?;apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice1)?; - edit in libpijul/src/tests/add_file.rs at line 382
None, - replacement in libpijul/src/tests/add_file.rs at line 388
apply::apply_change(&changes, &mut txn_bob, &mut channel, alice2)?;apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice2)?; - edit in libpijul/src/tests/add_file.rs at line 396
None, - replacement in libpijul/src/tests/add_file.rs at line 473
.apply_change(&changes, &mut channel_bob, alice1).apply_change(&changes, &mut channel_bob, &alice1) - edit in libpijul/src/tests/add_file.rs at line 482
None, - replacement in libpijul/src/tests/add_file.rs at line 488
.apply_change(&changes, &mut channel_bob, alice2).apply_change(&changes, &mut channel_bob, &alice2) - edit in libpijul/src/tests/add_file.rs at line 498
None, - replacement in libpijul/src/tests/add_file.rs at line 502
.apply_change(&changes, &mut channel_bob, alice3).apply_change(&changes, &mut channel_bob, &alice3) - edit in libpijul/src/tests/add_file.rs at line 512
None, - replacement in libpijul/src/tests/add_file.rs at line 522
.apply_change(&changes, &mut channel, bob1).apply_change(&changes, &mut channel, &bob1) - edit in libpijul/src/tests/add_file.rs at line 533
None, - replacement in libpijul/src/tests/add_file.rs at line 540
.apply_change(&changes, &mut channel, bob2).apply_change(&changes, &mut channel, &bob2) - edit in libpijul/src/tests/add_file.rs at line 550
None, - edit in libpijul/src/tests/add_file.rs at line 563
None, - edit in libpijul/src/tests/add_file.rs at line 576
None, - replacement in libpijul/src/tests/add_file.rs at line 584
.apply_change(&changes, &mut channel, bob1).apply_change(&changes, &mut channel, &bob1) - edit in libpijul/src/tests/add_file.rs at line 595
None, - replacement in libpijul/src/tests/add_file.rs at line 606
.apply_change(&changes, &mut channel, bob2).apply_change(&changes, &mut channel, &bob2) - edit in libpijul/src/tests/add_file.rs at line 615
None, - edit in libpijul/src/tests/add_file.rs at line 628
None, - edit in libpijul/src/tests/add_file.rs at line 673
None, - replacement in libpijul/src/tests/add_file.rs at line 728
h_alice2,&h_alice2, - replacement in libpijul/src/small_string.rs at line 12
#[derive(Clone, Copy)]pub struct SmallStr<'a> {pub p: *const u8,pub marker: std::marker::PhantomData<&'a ()>,pub struct SmallStr {len: u8,_str: [u8] - replacement in libpijul/src/small_string.rs at line 25
self.as_small_str().fmt(fmt)use std::ops::Deref;self.deref().fmt(fmt) - replacement in libpijul/src/small_string.rs at line 30
impl<'a> PartialEq for SmallStr<'a> {impl PartialEq for SmallStr { - edit in libpijul/src/small_string.rs at line 36
impl std::ops::Deref for SmallString {type Target = SmallStr;fn deref(&self) -> &Self::Target {let len = self.len as usize;unsafe {std::mem::transmute(std::slice::from_raw_parts(self as *const Self as *const u8, 1 + len))}}}impl AsRef<SmallStr> for SmallString {fn as_ref(&self) -> &SmallStr {let len = self.len as usize;unsafe {std::mem::transmute(std::slice::from_raw_parts(self as *const Self as *const u8, 1 + len))}}}impl AsMut<SmallStr> for SmallString {fn as_mut(&mut self) -> &mut SmallStr {let len = self.len as usize;unsafe {std::mem::transmute(std::slice::from_raw_parts_mut(self as *mut Self as *mut u8, 1 + len))}}}impl std::ops::DerefMut for SmallString {fn deref_mut(&mut self) -> &mut Self::Target {let len = self.len as usize;unsafe {std::mem::transmute(std::slice::from_raw_parts_mut(self as *mut Self as *mut u8, 1 + len))}}} - replacement in libpijul/src/small_string.rs at line 81
assert_eq!(s0.as_small_str(), s1.as_small_str());assert_eq!(s0.as_small_str(), s0.as_small_str());assert_eq!(s1.as_small_str(), s1.as_small_str());assert_eq!(s0, s1);assert_eq!(s0, s0);assert_eq!(s1, s1); - edit in libpijul/src/small_string.rs at line 90
assert_eq!(format!("{:?}", s.as_small_str()), "\"blabla\""); - replacement in libpijul/src/small_string.rs at line 92
impl<'a> Eq for SmallStr<'a> {}impl Eq for SmallStr {} - replacement in libpijul/src/small_string.rs at line 100
/*impl<'a> std::hash::Hash for SmallStr<'a> {fn hash<H: std::hash::Hasher>(&self, x: &mut H) {self.as_str().hash(x)}}*/ - replacement in libpijul/src/small_string.rs at line 107
impl<'a> PartialOrd for SmallStr<'a> {impl PartialOrd for SmallStr { - replacement in libpijul/src/small_string.rs at line 112
impl<'a> Ord for SmallStr<'a> {impl Ord for SmallStr { - edit in libpijul/src/small_string.rs at line 133
assert!(s0.as_small_str() < s1.as_small_str()); - edit in libpijul/src/small_string.rs at line 134
assert!(s0 < s1); - replacement in libpijul/src/small_string.rs at line 138
impl<'a> std::fmt::Debug for SmallStr<'a> {impl std::fmt::Debug for SmallStr { - edit in libpijul/src/small_string.rs at line 204
}/// ```ignore/// use libpijul::small_string::*;/// let mut s = SmallString::from_str("blah");/// let s_ = s.as_small_str();/// let s2_ = s_;/// let s3_ = s_.clone();/// assert_eq!(s_, s2_);/// assert_eq!(s_, s3_);/// ```pub fn as_small_str(&self) -> SmallStr {SmallStr {p: self as *const SmallString as *const u8,marker: std::marker::PhantomData,} - replacement in libpijul/src/small_string.rs at line 207
self.as_small_str().as_str()use std::ops::Deref;self.deref().as_str() - replacement in libpijul/src/small_string.rs at line 212
self.as_small_str().as_bytes()use std::ops::Deref;self.deref().as_bytes() - replacement in libpijul/src/small_string.rs at line 216
impl SmallStr<'static> {pub const EMPTY: SmallStr<'static> = SmallStr {p: [0].as_ptr(),marker: std::marker::PhantomData,/*impl SmallStr {pub const EMPTY: &'static SmallStr = &SmallStr {len: 0,str: [][..] - replacement in libpijul/src/small_string.rs at line 223
impl<'a> SmallStr<'a> {*/impl SmallStr { - replacement in libpijul/src/small_string.rs at line 242
unsafe { (*self.p) as usize }self.len as usize - replacement in libpijul/src/small_string.rs at line 245
pub fn as_str(&self) -> &'a str {pub fn as_str(&self) -> &str { - replacement in libpijul/src/small_string.rs at line 249
pub fn as_bytes(&self) -> &'a [u8] {unsafe { std::slice::from_raw_parts(self.p.offset(1), *self.p as usize) }pub fn as_bytes(&self) -> &[u8] {let s: &[u8] = unsafe { std::mem::transmute(self) };&s[1..] - edit in libpijul/src/small_string.rs at line 278
let s = SmallString::from_str("blah");let s_ = s.as_small_str();let s2_ = s_;let s3_ = s_.clone();assert_eq!(s_, s2_);assert_eq!(s_, s3_);}{ - replacement in libpijul/src/small_string.rs at line 279
assert!(s.as_small_str().is_empty());assert!(s.is_empty()); - replacement in libpijul/src/small_string.rs at line 281
assert!(!s.as_small_str().is_empty());assert!(!s.is_empty()); - replacement in libpijul/src/small_string.rs at line 285
assert_eq!(s.as_small_str().len(), "blah".len())assert_eq!(s.len(), "blah".len()) - replacement in libpijul/src/small_string.rs at line 289
/// An internal "unsafe" version of a [`small_string::SmallStr`], used/// to circumvent the absence of associated type constructors in Rust/// (else this would be borrow on a table).#[derive(Clone, Copy)]#[doc(hidden)]pub struct UnsafeSmallStr(*const u8);impl sanakirja::UnsizedStorable for SmallStr {const ALIGN: usize = 1; - replacement in libpijul/src/small_string.rs at line 292
impl std::fmt::Debug for UnsafeSmallStr {fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result {unsafe { self.to_small_str().fmt(fmt) }fn size(&self) -> usize {1 + self.len as usize - edit in libpijul/src/small_string.rs at line 295
unsafe fn write_to_page(&self, p: *mut u8) {std::ptr::copy(&self.len, p, 1 + self.len as usize);debug!("writing {:?}", std::slice::from_raw_parts(p, 1+self.len as usize));}unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self {smallstr_from_raw_ptr(p)}unsafe fn onpage_size(p: *const u8) -> usize {let len = *p as usize;debug!("onpage_size {:?}", std::slice::from_raw_parts(p, 1+len as usize));1 + len} - replacement in libpijul/src/small_string.rs at line 309
impl UnsafeSmallStr {pub fn from_small_str(u: SmallStr) -> UnsafeSmallStr {UnsafeSmallStr(u.p)impl sanakirja::Storable for SmallStr {fn compare<T>(&self, _: &T, x: &Self) -> std::cmp::Ordering {self.cmp(x) - replacement in libpijul/src/small_string.rs at line 313
pub unsafe fn to_small_str<'a>(&self) -> SmallStr<'a> {SmallStr {p: self.0,marker: std::marker::PhantomData,}type PageReferences = std::iter::Empty<u64>;fn page_references(&self) -> Self::PageReferences {std::iter::empty() - replacement in libpijul/src/small_string.rs at line 319
impl sanakirja::Representable for UnsafeSmallStr {fn alignment() -> sanakirja::Alignment {sanakirja::Alignment::B1}fn onpage_size(&self) -> u16 {unsafe {let len = (*self.0) as u16;1 + len}}unsafe fn write_value(&self, p: *mut u8) {std::ptr::copy(self.0, p, self.onpage_size() as usize)}unsafe fn read_value(p: *const u8) -> Self {UnsafeSmallStr(p)}unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {let a = UnsafeSmallStr(self.0).to_small_str();let b = x.to_small_str();a.as_str().cmp(b.as_str())}type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {std::iter::empty()unsafe fn smallstr_from_raw_ptr<'a>(p: *const u8) -> &'a SmallStr {let len = *p as usize;std::mem::transmute(std::slice::from_raw_parts(p, 1 + len as usize))}#[test]fn smallstr_repr() {use sanakirja::UnsizedStorable;let o = SmallString::from_str("blablabla");let mut x = vec![0u8; 200];unsafe {o.write_to_page(x.as_mut_ptr());let p = smallstr_from_raw_ptr(x.as_ptr());assert_eq!(p.as_str(), "blablabla") - replacement in libpijul/src/record.rs at line 50
pub(crate) redundant: Vec<(Vertex<ChangeId>, Edge)>,pub(crate) redundant: Vec<(Vertex<ChangeId>, SerializedEdge)>, - replacement in libpijul/src/record.rs at line 161
fn get_inodes<T: ChannelTxnT + TreeTxnT<TreeError = <T as GraphTxnT>::GraphError>>(txn: &T,fn get_inodes<'a, T: ChannelTxnT + TreeTxnT<TreeError = <T as GraphTxnT>::GraphError>>(txn: &'a T, - replacement in libpijul/src/record.rs at line 164
inode: Inode,) -> Result<Option<Position<ChangeId>>, TxnErr<T::GraphError>> {inode: &Inode,) -> Result<Option<&'a Position<ChangeId>>, TxnErr<T::GraphError>> { - replacement in libpijul/src/record.rs at line 168
.get_changeset(txn.changes(channel), vertex.change)?.get_changeset(txn.changes(channel), &vertex.change)? - replacement in libpijul/src/record.rs at line 214
} else if let Some(vertex) = get_inodes(txn, &channel, item.inode)? {} else if let Some(&vertex) = get_inodes(txn, &channel, &item.inode)? { - replacement in libpijul/src/record.rs at line 267
let name_start = ChangePosition(self.rec.contents.len() as u64);let name_start = ChangePosition(self.rec.contents.len().into()); - replacement in libpijul/src/record.rs at line 270
let name_end = ChangePosition(self.rec.contents.len() as u64);let name_end = ChangePosition(self.rec.contents.len().into()); - replacement in libpijul/src/record.rs at line 272
let inode_pos = ChangePosition(self.rec.contents.len() as u64);let inode_pos = ChangePosition(self.rec.contents.len().into()); - replacement in libpijul/src/record.rs at line 276
let start = ChangePosition(self.rec.contents.len() as u64);let start = ChangePosition(self.rec.contents.len().into()); - replacement in libpijul/src/record.rs at line 278
let end = ChangePosition(self.rec.contents.len() as u64);self.rec.largest_file = self.rec.largest_file.max(end.0 - start.0);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()); - replacement in libpijul/src/record.rs at line 281
let s = start.0 as usize;let e = (end.0 as usize).min(s + CHECK_UTF8 + 4);let s = start.0.into();let e = end.0.as_usize().min(s + CHECK_UTF8 + 4); - edit in libpijul/src/record.rs at line 379
- edit in libpijul/src/record.rs at line 381
debug!("name_ = {:?}", name_); - replacement in libpijul/src/record.rs at line 383
if !name_.flag.contains(EdgeFlags::PARENT) {if !name_.flag().contains(EdgeFlags::PARENT) {debug!("continue"); - replacement in libpijul/src/record.rs at line 387
debug!("name_ = {:?}", name_);if name_.flag.contains(EdgeFlags::DELETED) {if name_.flag().contains(EdgeFlags::DELETED) { - replacement in libpijul/src/record.rs at line 392
let name_dest = txn.find_block_end(txn.graph(channel), name_.dest).unwrap();let name_dest = txn.find_block_end(txn.graph(channel), name_.dest()).unwrap(); - replacement in libpijul/src/record.rs at line 395
.get_contents(|p| txn.get_external(p).unwrap(), name_dest, &mut name).get_contents(|p| txn.get_external(&p).unwrap().map(From::from), *name_dest, &mut name) - replacement in libpijul/src/record.rs at line 404
if let Some(v_papa) = iter_adjacent(txn, txn.graph(channel), name_dest, f0, f1)?.next()if let Some(v_papa) = iter_adjacent(txn, txn.graph(channel), *name_dest, f0, f1)?.next() - replacement in libpijul/src/record.rs at line 407
if !v_papa.flag.contains(EdgeFlags::DELETED) {if !v_papa.flag().contains(EdgeFlags::DELETED) { - replacement in libpijul/src/record.rs at line 411
parent: v_papa.dest.to_option(),parent: v_papa.dest().to_option(), - replacement in libpijul/src/record.rs at line 520
let child = txn.find_block(channel, child.dest).unwrap();for grandchild in iter_adjacent(txn, channel, child, f0, f1)? {let child = txn.find_block(channel, child.dest()).unwrap();for grandchild in iter_adjacent(txn, channel, *child, f0, f1)? { - replacement in libpijul/src/record.rs at line 525
if let Some(inode) = txn.get_revinodes(grandchild.dest, None)? {if let Some(inode) = txn.get_revinodes(&grandchild.dest(), None)? { - replacement in libpijul/src/record.rs at line 527
if let Some(path) = crate::fs::inode_filename(txn, inode)? {if let Some(path) = crate::fs::inode_filename(txn, *inode)? { - replacement in libpijul/src/record.rs at line 538
.get_contents(|p| txn.get_external(p).unwrap(), child, &mut name).get_contents(|p| txn.get_external(&p).unwrap().map(From::from), *child, &mut name) - replacement in libpijul/src/record.rs at line 555
grandchild.dest,grandchild.dest(), - replacement in libpijul/src/record.rs at line 589
for x in txn.iter_tree(fileid.clone(), None)? {for x in txn.iter_tree(&fileid, None)? { - replacement in libpijul/src/record.rs at line 613
inode: child_inode,inode: *child_inode, - replacement in libpijul/src/record.rs at line 621
self.record_deleted_file(txn, txn.graph(channel), working_copy, &full_path, vertex)?self.record_deleted_file(txn, txn.graph(channel), working_copy, &full_path, *vertex)? - replacement in libpijul/src/record.rs at line 671
let name_start = ChangePosition(self.rec.contents.len() as u64);let name_start = ChangePosition(self.rec.contents.len().into()); - replacement in libpijul/src/record.rs at line 674
let name_end = ChangePosition(self.rec.contents.len() as u64);let name_end = ChangePosition(self.rec.contents.len().into()); - replacement in libpijul/src/record.rs at line 676
let name = &self.rec.contents[name_start.0 as usize..name_end.0 as usize];let name = &self.rec.contents[name_start.0.as_usize()..name_end.0.as_usize()]; - replacement in libpijul/src/record.rs at line 727
self.rec.contents.truncate(name_start.0 as usize)self.rec.contents.truncate(name_start.0.as_usize()) - replacement in libpijul/src/record.rs at line 730
self.rec.contents.truncate(name_start.0 as usize)self.rec.contents.truncate(name_start.0.as_usize()) - replacement in libpijul/src/record.rs at line 775
if !parent.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT) {if !parent.flag().contains(EdgeFlags::FOLDER | EdgeFlags::PARENT) { - replacement in libpijul/src/record.rs at line 780
if !parent.flag.contains(EdgeFlags::PSEUDO) {if parent.flag.contains(EdgeFlags::DELETED) {if !parent.flag().contains(EdgeFlags::PSEUDO) {if parent.flag().contains(EdgeFlags::DELETED) { - replacement in libpijul/src/record.rs at line 783
previous: parent.flag - EdgeFlags::PARENT,previous: parent.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/record.rs at line 785
from: parent.dest.to_option(),from: parent.dest().to_option(), - replacement in libpijul/src/record.rs at line 787
introduced_by: Some(parent.introduced_by),introduced_by: Some(parent.introduced_by()), - replacement in libpijul/src/record.rs at line 791
.entry((parent.dest, current_pos.inode_vertex())).entry((parent.dest(), current_pos.inode_vertex())) - replacement in libpijul/src/record.rs at line 796
.entry((parent.dest, current_pos.inode_vertex())).entry((parent.dest(), current_pos.inode_vertex())) - replacement in libpijul/src/record.rs at line 798
v.push(Some(parent.introduced_by))v.push(Some(parent.introduced_by())) - replacement in libpijul/src/record.rs at line 802
let parent_dest = txn.find_block_end(channel, parent.dest).unwrap();let parent_dest = txn.find_block_end(channel, parent.dest()).unwrap(); - replacement in libpijul/src/record.rs at line 805
|p| txn.get_external(p).unwrap(),parent_dest,|p| txn.get_external(&p).unwrap().map(From::from),*parent_dest, - replacement in libpijul/src/record.rs at line 821
parent_dest,*parent_dest, - replacement in libpijul/src/record.rs at line 827
.flag.flag() - replacement in libpijul/src/record.rs at line 829
|| grandparent.flag.contains(EdgeFlags::PSEUDO)|| grandparent.flag().contains(EdgeFlags::PSEUDO) - replacement in libpijul/src/record.rs at line 834
let grandparent_dest = txn.find_block_end(channel, grandparent.dest).unwrap();let grandparent_dest = txn.find_block_end(channel, grandparent.dest()).unwrap(); - replacement in libpijul/src/record.rs at line 841
let grandparent_changed = parent_pos != grandparent.dest.to_option();let grandparent_changed = parent_pos != grandparent.dest().to_option(); - replacement in libpijul/src/record.rs at line 844
if grandparent.flag.contains(EdgeFlags::DELETED) {if grandparent.flag().contains(EdgeFlags::DELETED) { - replacement in libpijul/src/record.rs at line 848
previous: grandparent.flag - EdgeFlags::PARENT,previous: grandparent.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/record.rs at line 850
from: grandparent.dest.to_option(),from: grandparent.dest().to_option(), - replacement in libpijul/src/record.rs at line 852
introduced_by: Some(grandparent.introduced_by),introduced_by: Some(grandparent.introduced_by()), - replacement in libpijul/src/record.rs at line 854
if !parent_was_resurrected && !parent.flag.contains(EdgeFlags::PSEUDO) {if !parent_was_resurrected && !parent.flag().contains(EdgeFlags::PSEUDO) { - replacement in libpijul/src/record.rs at line 856
previous: parent.flag - EdgeFlags::PARENT,previous: parent.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/record.rs at line 858
from: parent.dest.to_option(),from: parent.dest().to_option(), - replacement in libpijul/src/record.rs at line 860
introduced_by: Some(parent.introduced_by),introduced_by: Some(parent.introduced_by()), - replacement in libpijul/src/record.rs at line 868
.entry((grandparent.dest, parent_dest)).entry((grandparent.dest(), parent_dest)) - replacement in libpijul/src/record.rs at line 870
v.push(Some(grandparent.introduced_by))v.push(Some(grandparent.introduced_by())) - replacement in libpijul/src/record.rs at line 874
previous: parent.flag - EdgeFlags::PARENT,previous: parent.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/record.rs at line 876
from: grandparent.dest.to_option(),from: grandparent.dest().to_option(), - replacement in libpijul/src/record.rs at line 878
introduced_by: Some(grandparent.introduced_by),introduced_by: Some(grandparent.introduced_by()), - replacement in libpijul/src/record.rs at line 881
if !parent_was_resurrected && !parent.flag.contains(EdgeFlags::PSEUDO) {if !parent_was_resurrected && !parent.flag().contains(EdgeFlags::PSEUDO) { - replacement in libpijul/src/record.rs at line 883
previous: parent.flag - EdgeFlags::PARENT,previous: parent.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/record.rs at line 885
from: parent.dest.to_option(),from: parent.dest().to_option(), - replacement in libpijul/src/record.rs at line 887
introduced_by: Some(parent.introduced_by),introduced_by: Some(parent.introduced_by()), - replacement in libpijul/src/record.rs at line 892
.entry((grandparent.dest, parent_dest)).entry((grandparent.dest(), *parent_dest)) - replacement in libpijul/src/record.rs at line 894
v.push(Some(grandparent.introduced_by));v.push(Some(grandparent.introduced_by())); - replacement in libpijul/src/record.rs at line 952
if let Some(path) = tree_path(txn, vertex.start_pos())? {if let Some(path) = tree_path(txn, &vertex.start_pos())? { - replacement in libpijul/src/record.rs at line 968
if let Some(inode) = txn.get_revinodes(vertex.start_pos(), None)? {if let Some(inode) = txn.get_revinodes(&vertex.start_pos(), None)? { - replacement in libpijul/src/record.rs at line 974
.insert(inode, vertex.start_pos().to_option());.insert(*inode, vertex.start_pos().to_option()); - replacement in libpijul/src/record.rs at line 977
.insert(self.rec.actions.len(), InodeUpdate::Deleted { inode });.insert(self.rec.actions.len(), InodeUpdate::Deleted { inode: *inode }); - replacement in libpijul/src/record.rs at line 993
.find_block(channel, edge.dest).find_block(channel, edge.dest()) - replacement in libpijul/src/record.rs at line 996
assert!(!edge.flag.contains(EdgeFlags::FOLDER));assert!(!edge.flag().contains(EdgeFlags::FOLDER)); - replacement in libpijul/src/record.rs at line 998
} else if edge.flag.contains(EdgeFlags::FOLDER) {} else if edge.flag().contains(EdgeFlags::FOLDER) { - replacement in libpijul/src/record.rs at line 1004
if visited.insert(edge.dest) {stack.push((dest, inode))if visited.insert(edge.dest()) {stack.push((*dest, inode)) - replacement in libpijul/src/record.rs at line 1030
if !parent.flag.contains(EdgeFlags::PARENT) {if !parent.flag().contains(EdgeFlags::PARENT) { - replacement in libpijul/src/record.rs at line 1033
assert!(parent.flag.contains(EdgeFlags::FOLDER));let parent_dest = txn.find_block_end(channel, parent.dest).unwrap();assert!(parent.flag().contains(EdgeFlags::FOLDER));let parent_dest = txn.find_block_end(channel, parent.dest()).unwrap(); - replacement in libpijul/src/record.rs at line 1038
parent_dest,*parent_dest, - replacement in libpijul/src/record.rs at line 1043
if !grandparent.flag.contains(EdgeFlags::PARENT)|| grandparent.flag.contains(EdgeFlags::PSEUDO)if !grandparent.flag().contains(EdgeFlags::PARENT)|| grandparent.flag().contains(EdgeFlags::PSEUDO) - replacement in libpijul/src/record.rs at line 1048
assert!(grandparent.flag.contains(EdgeFlags::PARENT));assert!(grandparent.flag.contains(EdgeFlags::FOLDER));assert!(grandparent.flag().contains(EdgeFlags::PARENT));assert!(grandparent.flag().contains(EdgeFlags::FOLDER)); - replacement in libpijul/src/record.rs at line 1051
previous: grandparent.flag - EdgeFlags::PARENT,previous: grandparent.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/record.rs at line 1053
from: grandparent.dest.to_option(),from: grandparent.dest().to_option(), - replacement in libpijul/src/record.rs at line 1055
introduced_by: Some(grandparent.introduced_by),introduced_by: Some(grandparent.introduced_by()), - replacement in libpijul/src/record.rs at line 1058
if !parent.flag.contains(EdgeFlags::PSEUDO) {if !parent.flag().contains(EdgeFlags::PSEUDO) { - replacement in libpijul/src/record.rs at line 1060
previous: parent.flag - EdgeFlags::PARENT,previous: parent.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/record.rs at line 1062
from: parent.dest.to_option(),from: parent.dest().to_option(), - replacement in libpijul/src/record.rs at line 1064
introduced_by: Some(parent.introduced_by),introduced_by: Some(parent.introduced_by()), - replacement in libpijul/src/record.rs at line 1108
if parent.flag.contains(EdgeFlags::PSEUDO) {if parent.flag().contains(EdgeFlags::PSEUDO) { - replacement in libpijul/src/record.rs at line 1111
assert!(parent.flag.contains(EdgeFlags::PARENT));assert!(!parent.flag.contains(EdgeFlags::FOLDER));assert!(parent.flag().contains(EdgeFlags::PARENT));assert!(!parent.flag().contains(EdgeFlags::FOLDER)); - replacement in libpijul/src/record.rs at line 1114[18.524842]→[18.524842:524909](∅→∅),[18.524909]→[18.29828:29914](∅→∅),[18.29914]→[18.524978:525033](∅→∅),[18.524978]→[18.524978:525033](∅→∅)
previous: parent.flag - EdgeFlags::PARENT,flag: (parent.flag - EdgeFlags::PARENT) | EdgeFlags::DELETED,from: parent.dest.to_option(),previous: parent.flag() - EdgeFlags::PARENT,flag: (parent.flag() - EdgeFlags::PARENT) | EdgeFlags::DELETED,from: parent.dest().to_option(), - replacement in libpijul/src/record.rs at line 1118
introduced_by: Some(parent.introduced_by),introduced_by: Some(parent.introduced_by()), - edit in libpijul/src/pristine/vertex.rs at line 1
use super::L64; - replacement in libpijul/src/pristine/vertex.rs at line 6
#[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord, Hash, Serialize, Deserialize)]#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash, Serialize, Deserialize)] - edit in libpijul/src/pristine/vertex.rs at line 17
impl<T: std::fmt::Debug> std::fmt::Debug for Vertex<T> {fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result {write!(fmt, "V({:?}[{}:{}])", self.change, (self.start.0).0, (self.end.0).0)}} - replacement in libpijul/src/pristine/vertex.rs at line 85
pub struct ChangePosition(pub u64);pub struct ChangePosition(pub super::L64); - replacement in libpijul/src/pristine/vertex.rs at line 88
pub(crate) const ROOT: ChangePosition = ChangePosition(0);pub(crate) const BOTTOM: ChangePosition = ChangePosition(1);pub(crate) const ROOT: ChangePosition = ChangePosition(L64(0u64));pub(crate) const BOTTOM: ChangePosition = ChangePosition(L64(1u64.to_le())); - replacement in libpijul/src/pristine/vertex.rs at line 95
ChangePosition(self.0 + x as u64)ChangePosition(self.0 + x) - replacement in libpijul/src/pristine/vertex.rs at line 102
(self.0 - x.0) as usizelet a: u64 = self.0.into();let b: u64 = x.0.into();(a - b) as usize}}impl ChangePosition {pub(crate) fn us(&self) -> usize {u64::from_le((self.0).0) as usize}}impl From<ChangePosition> for u64 {fn from(f: ChangePosition) -> u64 {u64::from_le((f.0).0) - edit in libpijul/src/pristine/vertex.rs at line 119
- edit in libpijul/src/pristine/vertex.rs at line 129
use byteorder::{ByteOrder, LittleEndian}; - replacement in libpijul/src/pristine/vertex.rs at line 134
LittleEndian::write_u64(&mut bytes, self.pos.0);self.pos.0.to_slice_le(&mut bytes); - replacement in libpijul/src/pristine/vertex.rs at line 158
.map(|_| LittleEndian::read_u64(&dec)).map(|_| L64::from_slice_le(&dec)) - replacement in libpijul/src/pristine/vertex.rs at line 199
pos: ChangePosition(0),pos: ChangePosition(L64(0u64)), - replacement in libpijul/src/pristine/vertex.rs at line 204
pos: ChangePosition(0),pos: ChangePosition(L64(0u64)), - replacement in libpijul/src/pristine/sanakirja.rs at line 2[18.531126]→[18.531126:531151](∅→∅),[18.531151]→[18.29915:29995](∅→∅),[18.29995]→[18.531171:531262](∅→∅),[18.531171]→[18.531171:531262](∅→∅)
use crate::small_string;use ::sanakirja::{Alignment, Commit, Db, Representable, Transaction, UnsafeDb};use byteorder::{ByteOrder, LittleEndian};use rand::rngs::ThreadRng;use rand::thread_rng;use ::sanakirja::*; - replacement in libpijul/src/pristine/sanakirja.rs at line 11
pub env: Arc<::sanakirja::Env<::sanakirja::Exclusive>>,pub env: Arc<::sanakirja::Env>, - edit in libpijul/src/pristine/sanakirja.rs at line 13
type P<K, V> = btree::page::Page<K, V>;type Db<K, V> = btree::Db<K, V>;type UP<K, V> = btree::page_unsized::Page<K, V>;type UDb<K, V> = btree::Db_<K, V, UP<K, V>>; - replacement in libpijul/src/pristine/sanakirja.rs at line 63
let env = ::sanakirja::Env::try_new(name, size);let env = ::sanakirja::Env::new(name, size, 2); - replacement in libpijul/src/pristine/sanakirja.rs at line 81
env: Arc::new(::sanakirja::Env::new_nolock(name, size)?),env: Arc::new(::sanakirja::Env::new_nolock(name, size, 2)?), - replacement in libpijul/src/pristine/sanakirja.rs at line 89
env: Arc::new(::sanakirja::Env::new_anon(size)?),env: Arc::new(::sanakirja::Env::new_anon(size, 2)?), - replacement in libpijul/src/pristine/sanakirja.rs at line 115
fn begin(txn: ::sanakirja::Txn<::sanakirja::Exclusive,Arc<::sanakirja::Env<::sanakirja::Exclusive>>,>,) -> Option<Txn> {fn begin(txn: ::sanakirja::Txn<Arc<::sanakirja::Env>>) -> Option<Txn> { - replacement in libpijul/src/pristine/sanakirja.rs at line 117
channels: txn.root(Root::Channels as usize)?,external: txn.root(Root::External as usize)?,internal: txn.root(Root::Internal as usize)?,inodes: txn.root(Root::Inodes as usize)?,revinodes: txn.root(Root::RevInodes as usize)?,tree: txn.root(Root::Tree as usize)?,revtree: txn.root(Root::RevTree as usize)?,revdep: txn.root(Root::RevDep as usize)?,touched_files: txn.root(Root::TouchedFiles as usize)?,rev_touched_files: txn.root(Root::RevTouchedFiles as usize)?,partials: txn.root(Root::Partials as usize)?,dep: txn.root(Root::Dep as usize)?,remotes: txn.root(Root::Remotes as usize)?,rng: thread_rng(),channels: txn.root_db(Root::Channels as usize)?,external: txn.root_db(Root::External as usize)?,internal: txn.root_db(Root::Internal as usize)?,inodes: txn.root_db(Root::Inodes as usize)?,revinodes: txn.root_db(Root::RevInodes as usize)?,tree: txn.root_db(Root::Tree as usize)?,revtree: txn.root_db(Root::RevTree as usize)?,revdep: txn.root_db(Root::RevDep as usize)?,touched_files: txn.root_db(Root::TouchedFiles as usize)?,rev_touched_files: txn.root_db(Root::RevTouchedFiles as usize)?,partials: txn.root_db(Root::Partials as usize)?,dep: txn.root_db(Root::Dep as usize)?,remotes: txn.root_db(Root::Remotes as usize)?, - replacement in libpijul/src/pristine/sanakirja.rs at line 146
.root(Root::Channels as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::Channels as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 149
.root(Root::External as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::External as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 152
.root(Root::Internal as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::Internal as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 155
.root(Root::Inodes as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::Inodes as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 158
.root(Root::RevInodes as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::RevInodes as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 161
.root(Root::Tree as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::Tree as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 164
.root(Root::RevTree as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::RevTree as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 167
.root(Root::RevDep as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::RevDep as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 170
.root(Root::Dep as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::Dep as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 173
.root(Root::TouchedFiles as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::TouchedFiles as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 176
.root(Root::RevTouchedFiles as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::RevTouchedFiles as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 179
.root(Root::Partials as usize).unwrap_or_else(|| txn.create_db().unwrap()),.root_db(Root::Partials as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - replacement in libpijul/src/pristine/sanakirja.rs at line 182
.root(Root::Remotes as usize).unwrap_or_else(|| txn.create_db().unwrap()),rng: thread_rng(),.root_db(Root::Remotes as usize).unwrap_or_else(|| btree::create_db_(&mut txn).unwrap()), - edit in libpijul/src/pristine/sanakirja.rs at line 191
type Graph = ::sanakirja::Db<Vertex<ChangeId>, Edge>;type ChangeSet = ::sanakirja::Db<ChangeId, ApplyTimestamp>;type RevChangeSet = ::sanakirja::Db<ApplyTimestamp, (ChangeId, Merkle)>;type ChannelStates = ::sanakirja::Db<Merkle, u64>; - replacement in libpijul/src/pristine/sanakirja.rs at line 192
pub type Txn = GenericTxn<::sanakirja::Txn<::sanakirja::Exclusive, Arc<::sanakirja::Env<::sanakirja::Exclusive>>>,>;pub type MutTxn<T> =GenericTxn<::sanakirja::MutTxn<Arc<::sanakirja::Env<::sanakirja::Exclusive>>, T>>;pub type Txn = GenericTxn<::sanakirja::Txn<Arc<::sanakirja::Env>>>;pub type MutTxn<T> = GenericTxn<::sanakirja::MutTxn<Arc<::sanakirja::Env>, T>>; - replacement in libpijul/src/pristine/sanakirja.rs at line 203
pub struct GenericTxn<T: ::sanakirja::Transaction> {pub struct GenericTxn<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> { - replacement in libpijul/src/pristine/sanakirja.rs at line 207
pub internal: Db<Hash, ChangeId>,pub internal: Db<SerializedHash, ChangeId>, - replacement in libpijul/src/pristine/sanakirja.rs at line 209
pub external: Db<ChangeId, Hash>,pub external: Db<ChangeId, SerializedHash>, - replacement in libpijul/src/pristine/sanakirja.rs at line 213
tree: Db<UnsafePathId, Inode>,revtree: Db<Inode, UnsafePathId>,tree: UDb<PathId, Inode>,revtree: UDb<Inode, PathId>, - replacement in libpijul/src/pristine/sanakirja.rs at line 222
partials: Db<UnsafeSmallStr, Position<ChangeId>>,channels: Db<UnsafeSmallStr, (Graph, ChangeSet, RevChangeSet, ChannelStates, u64, u64)>,remotes: Db<UnsafeSmallStr, (Db<u64, (Hash, Merkle)>, Db<Hash, u64>, Db<Merkle, u64>)>,rng: ThreadRng,open_channels: RefCell<HashMap<SmallString, ChannelRef<Self>>>,partials: UDb<SmallStr, Position<ChangeId>>,channels: UDb<SmallStr, T6>,remotes: UDb<SmallStr, T3>,pub(crate) open_channels: RefCell<HashMap<SmallString, ChannelRef<Self>>>, - replacement in libpijul/src/pristine/sanakirja.rs at line 232
unsafe impl<T: ::sanakirja::Transaction> Send for GenericTxn<T> {}unsafe impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> Send for GenericTxn<T> {} - edit in libpijul/src/pristine/sanakirja.rs at line 234
#[derive(Debug)]pub struct DatabaseReport {pub refs: usize,pub stats: ::sanakirja::Statistics,} - replacement in libpijul/src/pristine/sanakirja.rs at line 235[18.538254]→[18.538254:539439](∅→∅),[18.539439]→[18.39467:39585](∅→∅),[18.39585]→[18.539516:539904](∅→∅),[18.539516]→[18.539516:539904](∅→∅)
pub fn check_database(&self) -> DatabaseReport {let mut refs = HashMap::new();self.txn.references(&mut refs, self.internal);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.external);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.inodes);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.revinodes);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.tree);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.revtree);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.revdep);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.dep);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.touched_files);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.rev_touched_files);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.partials);info!("refs = {:?}", refs);self.txn.references(&mut refs, self.channels);info!("refs = {:?}", refs);for x in self.txn.iter(&self.channels, None).unwrap() {let (a, (g, c, r, s, _, _)) = x.unwrap();info!("channel = {:?}", a);self.txn.references(&mut refs, g);info!("refs = {:?}", refs);self.txn.references(&mut refs, c);info!("refs = {:?}", refs);self.txn.references(&mut refs, r);info!("refs = {:?}", refs);self.txn.references(&mut refs, s);info!("refs = {:?}", refs);pub fn check_database(&self) {let mut refs = std::collections::BTreeMap::new();debug!("check: internal 0x{:x}", self.internal.db);::sanakirja::debug::add_refs(&self.txn, &self.internal, &mut refs).unwrap();debug!("check: external 0x{:x}", self.external.db);::sanakirja::debug::add_refs(&self.txn, &self.external, &mut refs).unwrap();debug!("check: inodes 0x{:x}", self.inodes.db);::sanakirja::debug::add_refs(&self.txn, &self.inodes, &mut refs).unwrap();debug!("check: revinodes 0x{:x}", self.revinodes.db);::sanakirja::debug::add_refs(&self.txn, &self.revinodes, &mut refs).unwrap();debug!("check: tree 0x{:x}", self.tree.db);::sanakirja::debug::add_refs(&self.txn, &self.tree, &mut refs).unwrap();debug!("check: revtree 0x{:x}", self.revtree.db);::sanakirja::debug::add_refs(&self.txn, &self.revtree, &mut refs).unwrap();debug!("check: revdep 0x{:x}", self.revdep.db);::sanakirja::debug::add_refs(&self.txn, &self.revdep, &mut refs).unwrap();debug!("check: dep 0x{:x}", self.dep.db);::sanakirja::debug::add_refs(&self.txn, &self.dep, &mut refs).unwrap();debug!("check: touched_files 0x{:x}", self.touched_files.db);::sanakirja::debug::add_refs(&self.txn, &self.touched_files, &mut refs).unwrap();debug!("check: rev_touched_files 0x{:x}", self.rev_touched_files.db);::sanakirja::debug::add_refs(&self.txn, &self.rev_touched_files, &mut refs).unwrap();debug!("check: partials 0x{:x}", self.partials.db);::sanakirja::debug::add_refs(&self.txn, &self.partials, &mut refs).unwrap();debug!("check: channels 0x{:x}", self.channels.db);::sanakirja::debug::add_refs(&self.txn, &self.channels, &mut refs).unwrap();for x in btree::iter(&self.txn, &self.channels, None).unwrap() {let (name, tup) = x.unwrap();debug!("check: channel name: {:?}", name.as_str());let graph: Db<Vertex<ChangeId>, SerializedEdge> = Db::from_page(tup.0[0].into());let changes: Db<ChangeId, L64> = Db::from_page(tup.0[1].into());let revchanges: UDb<L64, Pair<ChangeId, SerializedMerkle>> = UDb::from_page(tup.0[2].into());let states: UDb<SerializedMerkle, L64> = UDb::from_page(tup.0[3].into());debug!("check: graph 0x{:x}", graph.db);::sanakirja::debug::add_refs(&self.txn, &graph, &mut refs).unwrap();debug!("check: changes 0x{:x}", changes.db);::sanakirja::debug::add_refs(&self.txn, &changes, &mut refs).unwrap();debug!("check: revchanges 0x{:x}", revchanges.db);::sanakirja::debug::add_refs(&self.txn, &revchanges, &mut refs).unwrap();debug!("check: states 0x{:x}", states.db);::sanakirja::debug::add_refs(&self.txn, &states, &mut refs).unwrap(); - replacement in libpijul/src/pristine/sanakirja.rs at line 277[18.539914]→[18.539914:540004](∅→∅),[18.540004]→[18.39586:39694](∅→∅),[18.39694]→[18.540071:540597](∅→∅),[18.540071]→[18.540071:540597](∅→∅),[18.540597]→[18.39695:39813](∅→∅),[18.39813]→[18.540674:541955](∅→∅),[18.540674]→[18.540674:541955](∅→∅)
self.txn.references(&mut refs, self.remotes);info!("refs = {:?}", refs);for x in self.txn.iter(&self.remotes, None).unwrap() {let (a, (u, v, w)) = x.unwrap();info!("remote = {:?}", a);self.txn.references(&mut refs, u);info!("refs = {:?}", refs);self.txn.references(&mut refs, v);info!("refs = {:?}", refs);self.txn.references(&mut refs, w);info!("refs = {:?}", refs);}let stats = self.txn.statistics();let report = DatabaseReport {refs: refs.len(),stats: stats.clone(),};let mut channel_roots: Vec<UnsafeDb> = Vec::new();for x in self.txn.iter(&self.channels, None).unwrap() {let (a, (g, c, r, s, _, _)) = x.unwrap();info!("channel: {:?}", a);unsafe {channel_roots.push(std::mem::transmute(g));channel_roots.push(std::mem::transmute(c));channel_roots.push(std::mem::transmute(r));channel_roots.push(std::mem::transmute(s));}}::sanakirja::debug_(&self.txn, &channel_roots[..], "debug_sanakirja", true);self.txn.check_references(&mut refs);info!("stats = {:?}", stats);let occupied_pages =stats.total_pages - stats.free_pages.len() - stats.bookkeeping_pages.len();for i in 1..(stats.total_pages as u64) {let p = i * 4096;if !refs.contains_key(&p)&& !stats.free_pages.contains(&p)&& !stats.bookkeeping_pages.contains(&p){panic!("does not contain {:?} ({:?})", i, p);}}// check that there is no intersection.for (r, _) in refs.iter() {if stats.free_pages.contains(r) {panic!("referenced page is free: {:?}", r);}if stats.bookkeeping_pages.contains(r) {panic!("referenced page is a bookkeeping page: {:?}", r);}debug!("check: remotes 0x{:x}", self.remotes.db);::sanakirja::debug::add_refs(&self.txn, &self.remotes, &mut refs).unwrap();for x in btree::iter(&self.txn, &self.remotes, None).unwrap() {let (name, tup) = x.unwrap();debug!("check: remote name: {:?}", name.as_str());let remote: UDb<SmallStr, T3> = UDb::from_page(tup.0[0].into());let rev: UDb<SerializedHash, L64> = UDb::from_page(tup.0[1].into());let states: UDb<SerializedMerkle, L64> = UDb::from_page(tup.0[2].into());debug!("check: remote 0x{:x}", remote.db);::sanakirja::debug::add_refs(&self.txn, &remote, &mut refs).unwrap();debug!("check: rev 0x{:x}", rev.db);::sanakirja::debug::add_refs(&self.txn, &rev, &mut refs).unwrap();debug!("check: states 0x{:x}", states.db);::sanakirja::debug::add_refs(&self.txn, &states, &mut refs).unwrap(); - replacement in libpijul/src/pristine/sanakirja.rs at line 292
for p in stats.free_pages.iter() {if stats.bookkeeping_pages.contains(p) {panic!("bookkeeping inter free: {:?}", p);}}assert_eq!(1 + refs.len(), occupied_pages);report::sanakirja::debug::add_free_refs(&self.txn, &mut refs).unwrap();::sanakirja::debug::check_free(&self.txn, &refs); - replacement in libpijul/src/pristine/sanakirja.rs at line 297[18.542222]→[18.39814:39878](∅→∅),[18.13699]→[18.542300:542345](∅→∅),[18.39878]→[18.542300:542345](∅→∅),[18.542300]→[18.542300:542345](∅→∅)
impl<T: ::sanakirja::Transaction> GraphTxnT for GenericTxn<T> {type Graph = Db<Vertex<ChangeId>, Edge>;impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> GraphTxnT for GenericTxn<T> {type Graph = Db<Vertex<ChangeId>, SerializedEdge>; - replacement in libpijul/src/pristine/sanakirja.rs at line 301
sanakirja_get!(graph, Vertex<ChangeId>, Edge, GraphError);fn get_external(&self, p: ChangeId) -> Result<Option<Hash>, TxnErr<Self::GraphError>> {sanakirja_get!(graph, Vertex<ChangeId>, SerializedEdge, GraphError);fn get_external(&self,p: &ChangeId,) -> Result<Option<&SerializedHash>, TxnErr<Self::GraphError>> {debug!("get_external {:?}", p); - replacement in libpijul/src/pristine/sanakirja.rs at line 308
Ok(Some(Hash::None))} else if let Ok(x) = self.txn.get(&self.external, p, None) {Ok(x)Ok(Some(&HASH_NONE)) - replacement in libpijul/src/pristine/sanakirja.rs at line 310
Err(TxnErr(SanakirjaError::PristineCorrupt))match btree::get(&self.txn, &self.external, p, None) {Ok(Some((k, v))) if k == p => Ok(Some(v)),Ok(_) => Ok(None),Err(e) => {error!("{:?}", e);Err(TxnErr(SanakirjaError::PristineCorrupt))}} - replacement in libpijul/src/pristine/sanakirja.rs at line 321[18.36940]→[18.40255:40347](∅→∅),[18.40347]→[18.542746:542778](∅→∅),[18.542746]→[18.542746:542778](∅→∅),[18.542778]→[18.40348:40473](∅→∅)
fn get_internal(&self, p: Hash) -> Result<Option<ChangeId>, TxnErr<Self::GraphError>> {if let Hash::None = p {Ok(Some(ChangeId::ROOT))} else if let Ok(x) = self.txn.get(&self.internal, p, None) {Ok(x)fn get_internal(&self, p: &SerializedHash) -> Result<Option<&ChangeId>, TxnErr<Self::GraphError>> {if p.t == HashAlgorithm::None as u8 {Ok(Some(&ChangeId::ROOT)) - replacement in libpijul/src/pristine/sanakirja.rs at line 325
Err(TxnErr(SanakirjaError::PristineCorrupt))match btree::get(&self.txn, &self.internal, &p, None) {Ok(Some((k, v))) if k == p => Ok(Some(v)),Ok(_) => Ok(None),Err(e) => {error!("{:?}", e);Err(TxnErr(SanakirjaError::PristineCorrupt))}} - replacement in libpijul/src/pristine/sanakirja.rs at line 346
let edge = Edge {flag: min_flag,dest,introduced_by: ChangeId::ROOT,};if let Ok((cursor, _)) = self.txn.set_cursors(g, Some((key, Some(edge)))) {Ok(Adj {cursor,key,min_flag,max_flag,})} else {Err(TxnErr(SanakirjaError::PristineCorrupt))}let edge = SerializedEdge::new(min_flag, dest.change, dest.pos, ChangeId::ROOT);let mut cursor = btree::cursor::Cursor::new(&self.txn, g).map_err(TxnErr)?;cursor.set(&self.txn, &key, Some(&edge))?;Ok(Adj {cursor,key,min_flag,max_flag,}) - replacement in libpijul/src/pristine/sanakirja.rs at line 357
fn next_adj(&self,fn next_adj<'a>(&'a self, - replacement in libpijul/src/pristine/sanakirja.rs at line 361
) -> Option<Result<Edge, TxnErr<Self::GraphError>>> {) -> Option<Result<&'a SerializedEdge, TxnErr<Self::GraphError>>> { - replacement in libpijul/src/pristine/sanakirja.rs at line 369
) -> Result<Vertex<ChangeId>, BlockError<Self::GraphError>> {) -> Result<&Vertex<ChangeId>, BlockError<Self::GraphError>> { - replacement in libpijul/src/pristine/sanakirja.rs at line 377
) -> Result<Vertex<ChangeId>, BlockError<Self::GraphError>> {) -> Result<&Vertex<ChangeId>, BlockError<Self::GraphError>> { - edit in libpijul/src/pristine/sanakirja.rs at line 382
unsafe fn next_graph<T: ::sanakirja::Transaction>(txn: &T,cursor: &mut ::sanakirja::Cursor,) -> Result<Option<(Vertex<ChangeId>, Edge)>, BlockError<SanakirjaError>> {match ::sanakirja::next::<_, Vertex<ChangeId>, Edge>(txn, cursor) {Ok(x) => Ok(x),Err(::sanakirja::CRCError {}) => Err(BlockError::Txn(SanakirjaError::PristineCorrupt)),}}unsafe fn prev_graph<T: ::sanakirja::Transaction>(txn: &T,cursor: &mut ::sanakirja::Cursor,) -> Result<Option<(Vertex<ChangeId>, Edge)>, BlockError<SanakirjaError>> {match ::sanakirja::prev::<_, Vertex<ChangeId>, Edge>(txn, cursor) {Ok(x) => Ok(x),Err(::sanakirja::CRCError {}) => Err(BlockError::Txn(SanakirjaError::PristineCorrupt)),}} - replacement in libpijul/src/pristine/sanakirja.rs at line 383
pub fn next_adj<T: ::sanakirja::Transaction>(txn: &T,pub fn next_adj<'a, T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>>(txn: &'a T, - replacement in libpijul/src/pristine/sanakirja.rs at line 386
) -> Option<Result<Edge, TxnErr<SanakirjaError>>> {) -> Option<Result<&'a SerializedEdge, TxnErr<SanakirjaError>>> { - replacement in libpijul/src/pristine/sanakirja.rs at line 388
let x: Result<Option<(Vertex<ChangeId>, Edge)>, _> =unsafe { ::sanakirja::next(txn, &mut a.cursor) };let x: Result<Option<(&Vertex<ChangeId>, &SerializedEdge)>, _> = a.cursor.next(txn); - replacement in libpijul/src/pristine/sanakirja.rs at line 391
debug!("adjacent iterator: {:?} {:?}", v, e);if v == a.key {if e.flag >= a.min_flag {if e.flag <= a.max_flag {if *v == a.key {if e.flag() >= a.min_flag {if e.flag() <= a.max_flag { - replacement in libpijul/src/pristine/sanakirja.rs at line 399
} else if v > a.key {} else if *v > a.key { - edit in libpijul/src/pristine/sanakirja.rs at line 405
debug!("adjacent iterator: over"); - replacement in libpijul/src/pristine/sanakirja.rs at line 412
pub fn find_block<T: ::sanakirja::Transaction>(txn: &T,graph: &::sanakirja::Db<Vertex<ChangeId>, Edge>,pub fn find_block<'a, T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>>(txn: &'a T,graph: &::sanakirja::btree::Db<Vertex<ChangeId>, SerializedEdge>, - replacement in libpijul/src/pristine/sanakirja.rs at line 416
) -> Result<Vertex<ChangeId>, BlockError<SanakirjaError>> {) -> Result<&'a Vertex<ChangeId>, BlockError<SanakirjaError>> { - replacement in libpijul/src/pristine/sanakirja.rs at line 418
return Ok(Vertex::ROOT);return Ok(&Vertex::ROOT); - edit in libpijul/src/pristine/sanakirja.rs at line 424
};debug!(target: "libpijul::find_block", "find_block {:?}", key);let mut cursor = if let Ok((cursor, _)) = txn.set_cursors(&graph, Some((key, None))) {cursor} else {return Err(BlockError::Txn(SanakirjaError::PristineCorrupt)); - replacement in libpijul/src/pristine/sanakirja.rs at line 425
let mut k = if let Some((k, _)) = unsafe { next_graph(txn, &mut cursor)? } {let mut cursor =btree::cursor::Cursor::new(txn, &graph).map_err(|x| BlockError::Txn(x.into()))?;let mut k = if let Some((k, _)) = cursor.set(txn, &key, None).map_err(|x| BlockError::Txn(x.into()))? {k} else if let Some((k, _)) = cursor.prev(txn).map_err(|x| BlockError::Txn(x.into()))? { - replacement in libpijul/src/pristine/sanakirja.rs at line 434
debug!("k = {:?}", k);// The only guarantee here is that k is either the first key// >= `key`, or the key just before that. We might need to// rewind by one step if key is strictly larger than the// result (i.e. if `p` is in the middle of the key).// The only guarantee here is that k is either the first key >=// `key`. We might need to rewind by one step if key is strictly// larger than the result (i.e. if `p` is in the middle of the// key). - replacement in libpijul/src/pristine/sanakirja.rs at line 439
debug!(target: "libpijul::find_block", "find_block while {:?}", k);if let Some((k_, _)) = unsafe { prev_graph(txn, &mut cursor)? } {if let Some((k_, _)) = cursor.prev(txn).map_err(|x| BlockError::Txn(x.into()))? { - edit in libpijul/src/pristine/sanakirja.rs at line 446
debug!(target: "libpijul::find_block", "find_block loop {:?}", k); - replacement in libpijul/src/pristine/sanakirja.rs at line 453
if let Some((k_, _)) = unsafe { next_graph(txn, &mut cursor)? } {if let Some((k_, _)) = cursor.next(txn).map_err(|x| BlockError::Txn(x.into()))? { - edit in libpijul/src/pristine/sanakirja.rs at line 459
debug!(target: "libpijul::find_block", "find_block None, {:?}", k); - replacement in libpijul/src/pristine/sanakirja.rs at line 463
pub fn find_block_end<T: ::sanakirja::Transaction>(txn: &T,graph: &::sanakirja::Db<Vertex<ChangeId>, Edge>,pub fn find_block_end<'a, T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>>(txn: &'a T,graph: &::sanakirja::btree::Db<Vertex<ChangeId>, SerializedEdge>, - replacement in libpijul/src/pristine/sanakirja.rs at line 467
) -> Result<Vertex<ChangeId>, BlockError<SanakirjaError>> {) -> Result<&'a Vertex<ChangeId>, BlockError<SanakirjaError>> { - replacement in libpijul/src/pristine/sanakirja.rs at line 469
return Ok(Vertex::ROOT);return Ok(&Vertex::ROOT); - replacement in libpijul/src/pristine/sanakirja.rs at line 476
debug!(target: "libpijul::find_block_end", "find_block_end {:?}, p.change.0 = {:?}", key, p.change.0);let mut cursor = if let Ok((cursor, _)) = txn.set_cursors(&graph, Some((key, None))) {cursor} else {return Err(BlockError::Txn(SanakirjaError::PristineCorrupt));};let mut k = if let Some((k, _)) = unsafe { next_graph(txn, &mut cursor)? } {let mut cursor = ::sanakirja::btree::cursor::Cursor::new(txn, graph).map_err(|x| BlockError::Txn(x.into()))?;let mut k = if let Some((k, _)) = cursor.set(txn, &key, None).map_err(|x| BlockError::Txn(x.into()))?{k} else if let Some((k, _)) = cursor.prev(txn).map_err(|x| BlockError::Txn(x.into()))? { - edit in libpijul/src/pristine/sanakirja.rs at line 488
// The only guarantee here is that k is either the first key// before `key`, or the key just before that. - edit in libpijul/src/pristine/sanakirja.rs at line 489
debug!(target: "libpijul::find_block_end", "find_block_end loop {:?} k.change.0 = {:?}", k, k.change.0); - replacement in libpijul/src/pristine/sanakirja.rs at line 502
if let Some((k_, _)) = unsafe { prev_graph(txn, &mut cursor)? } {if let Some((k_, _)) = cursor.prev(txn).map_err(|x| BlockError::Txn(x.into()))? { - edit in libpijul/src/pristine/sanakirja.rs at line 510
debug!(target: "libpijul::find_block_end", "find_block_end k(0) = {:?} k.change.0 = {:?}", k, k.change.0); - replacement in libpijul/src/pristine/sanakirja.rs at line 511
if let Some((k_, _)) = unsafe { next_graph(txn, &mut cursor)? } {if let Some((k_, _)) = cursor.next(txn).map_err(|x| BlockError::Txn(x.into()))? { - edit in libpijul/src/pristine/sanakirja.rs at line 517
debug!(target: "libpijul::find_block_end", "find_block_end k(1) = {:?}, k.change.0 = {:?}", k, k.change.0); - edit in libpijul/src/pristine/sanakirja.rs at line 520
debug!("ok"); - replacement in libpijul/src/pristine/sanakirja.rs at line 527
pub cursor: ::sanakirja::Cursor,pub cursor: ::sanakirja::btree::cursor::Cursor<Vertex<ChangeId>,SerializedEdge,P<Vertex<ChangeId>, SerializedEdge>,>, - replacement in libpijul/src/pristine/sanakirja.rs at line 537
impl<T: ::sanakirja::Transaction> GraphIter for GenericTxn<T> {type GraphCursor = ::sanakirja::Cursor;impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> GraphIter for GenericTxn<T> {type GraphCursor = ::sanakirja::btree::cursor::Cursor<Vertex<ChangeId>,SerializedEdge,P<Vertex<ChangeId>, SerializedEdge>,>; - replacement in libpijul/src/pristine/sanakirja.rs at line 545[18.38422]→[18.38422:38528](∅→∅),[18.38528]→[18.40474:40531](∅→∅),[18.542828]→[18.40474:40531](∅→∅),[18.40531]→[18.38529:38539](∅→∅)
if let Ok((cursor, _)) = self.txn.set_cursors(&g, None) {Ok(cursor)} else {Err(TxnErr(SanakirjaError::PristineCorrupt))}Ok(::sanakirja::btree::cursor::Cursor::new(&self.txn, &g)?) - replacement in libpijul/src/pristine/sanakirja.rs at line 548
fn next_graph(&self,fn next_graph<'txn>(&'txn self, - replacement in libpijul/src/pristine/sanakirja.rs at line 552
) -> Option<Result<(Vertex<ChangeId>, Edge), TxnErr<Self::GraphError>>> {match unsafe { ::sanakirja::next(&self.txn, a) } {) -> Option<Result<(&'txn Vertex<ChangeId>, &'txn SerializedEdge), TxnErr<Self::GraphError>>>{match a.next(&self.txn) { - replacement in libpijul/src/pristine/sanakirja.rs at line 557
Err(::sanakirja::CRCError {}) => Some(Err(TxnErr(SanakirjaError::PristineCorrupt))),Err(e) => {error!("{:?}", e);Some(Err(TxnErr(SanakirjaError::PristineCorrupt)))} - edit in libpijul/src/pristine/sanakirja.rs at line 565
// There is a choice here: the datastructure for `revchanges` is// intuitively a list. Moreover, when removing a change, we must// recompute the entire merkle tree after the removed change.//// This seems to indicate that a linked list could be an appropriate// structure (a growable array is excluded because amortised// complexity is not really acceptable here).//// However, we want to be able to answers queries such as "when was// change X introduced?" without having to read the entire database.//// Additionally, even though `SerializedMerkle` has only one// implementation, and is therefore sized in the current// implementation, we can't exclude that other algorithms may be// added, which means that the pages inside linked lists won't even be// randomly-accessible arrays. - replacement in libpijul/src/pristine/sanakirja.rs at line 582
pub graph: Db<Vertex<ChangeId>, Edge>,pub changes: Db<ChangeId, u64>,pub revchanges: Db<u64, (ChangeId, Merkle)>,pub states: Db<Merkle, u64>,pub graph: Db<Vertex<ChangeId>, SerializedEdge>,pub changes: Db<ChangeId, L64>,pub revchanges: UDb<L64, Pair<ChangeId, SerializedMerkle>>,pub states: UDb<SerializedMerkle, L64>, - replacement in libpijul/src/pristine/sanakirja.rs at line 591
impl<T: ::sanakirja::Transaction> ChannelTxnT for GenericTxn<T> {impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> ChannelTxnT for GenericTxn<T> { - replacement in libpijul/src/pristine/sanakirja.rs at line 594
fn graph<'a>(&self, c: &'a Self::Channel) -> &'a Db<Vertex<ChangeId>, Edge> {fn graph<'a>(&self, c: &'a Self::Channel) -> &'a Db<Vertex<ChangeId>, SerializedEdge> { - replacement in libpijul/src/pristine/sanakirja.rs at line 601
channel.apply_counterchannel.apply_counter.into() - replacement in libpijul/src/pristine/sanakirja.rs at line 604
channel.last_modifiedchannel.last_modified.into() - replacement in libpijul/src/pristine/sanakirja.rs at line 613
type Changeset = ::sanakirja::Db<ChangeId, u64>;type RevChangeset = ::sanakirja::Db<u64, (ChangeId, Merkle)>;type Changeset = Db<ChangeId, L64>;type RevChangeset = UDb<L64, Pair<ChangeId, SerializedMerkle>>; - replacement in libpijul/src/pristine/sanakirja.rs at line 619
c: ChangeId,) -> Result<Option<u64>, TxnErr<Self::GraphError>> {if let Ok(x) = self.txn.get(channel, c, None) {Ok(x)} else {Err(TxnErr(SanakirjaError::PristineCorrupt))c: &ChangeId,) -> Result<Option<&L64>, TxnErr<Self::GraphError>> {match btree::get(&self.txn, channel, c, None) {Ok(Some((k, x))) if k == c => Ok(Some(x)),Ok(x) => {debug!("get_changeset = {:?}", x);Ok(None)},Err(e) => {error!("{:?}", e);Err(TxnErr(SanakirjaError::PristineCorrupt))} - replacement in libpijul/src/pristine/sanakirja.rs at line 636
c: u64,) -> Result<Option<(ChangeId, Merkle)>, TxnErr<Self::GraphError>> {if let Ok(x) = self.txn.get(revchanges, c, None) {Ok(x)} else {Err(TxnErr(SanakirjaError::PristineCorrupt))c: &L64,) -> Result<Option<&Pair<ChangeId, SerializedMerkle>>, TxnErr<Self::GraphError>> {match btree::get(&self.txn, revchanges, c, None) {Ok(Some((k, x))) if k == c => Ok(Some(x)),Ok(_) => Ok(None),Err(e) => {error!("{:?}", e);Err(TxnErr(SanakirjaError::PristineCorrupt))} - replacement in libpijul/src/pristine/sanakirja.rs at line 648
type ChangesetCursor = ::sanakirja::Cursor;type ChangesetCursor = ::sanakirja::btree::cursor::Cursor<ChangeId, L64, P<ChangeId, L64>>; - replacement in libpijul/src/pristine/sanakirja.rs at line 654
) -> Result<Cursor<Self, &'a Self, Self::ChangesetCursor, ChangeId, u64>, TxnErr<SanakirjaError>>) -> Result<Cursor<Self, &'a Self, Self::ChangesetCursor, ChangeId, L64>, TxnErr<SanakirjaError>> - replacement in libpijul/src/pristine/sanakirja.rs at line 656
if let Ok((cursor, _)) = self.txn.set_cursors(&channel, pos.map(|x| (x, None))) {Ok(Cursor {cursor,txn: self,marker: std::marker::PhantomData,})} else {Err(TxnErr(SanakirjaError::PristineCorrupt))let mut cursor = btree::cursor::Cursor::new(&self.txn, &channel)?;if let Some(k) = pos {cursor.set(&self.txn, &k, None)?; - edit in libpijul/src/pristine/sanakirja.rs at line 660
Ok(Cursor {cursor,txn: self,k: std::marker::PhantomData,v: std::marker::PhantomData,t: std::marker::PhantomData,}) - replacement in libpijul/src/pristine/sanakirja.rs at line 669
type RevchangesetCursor = ::sanakirja::Cursor;type RevchangesetCursor = ::sanakirja::btree::cursor::Cursor<L64,Pair<ChangeId, SerializedMerkle>,UP<L64, Pair<ChangeId, SerializedMerkle>>,>; - replacement in libpijul/src/pristine/sanakirja.rs at line 678
pos: Option<u64>,pos: Option<L64>, - replacement in libpijul/src/pristine/sanakirja.rs at line 680
Cursor<Self, RT, Self::RevchangesetCursor, u64, (ChangeId, Merkle)>,Cursor<Self, RT, Self::RevchangesetCursor, L64, Pair<ChangeId, SerializedMerkle>>, - replacement in libpijul/src/pristine/sanakirja.rs at line 683
if let Ok((cursor, _)) = txn.txn.set_cursors(channel, pos.map(|x| (x, None))) {Ok(Cursor {cursor,txn,marker: std::marker::PhantomData,})} else {Err(TxnErr(SanakirjaError::PristineCorrupt))let mut cursor = btree::cursor::Cursor::new(&txn.txn, channel)?;if let Some(k) = pos {cursor.set(&txn.txn, &k, None)?; - edit in libpijul/src/pristine/sanakirja.rs at line 687
Ok(Cursor {cursor,txn,k: std::marker::PhantomData,v: std::marker::PhantomData,t: std::marker::PhantomData,}) - replacement in libpijul/src/pristine/sanakirja.rs at line 699
pos: Option<u64>,pos: Option<L64>, - replacement in libpijul/src/pristine/sanakirja.rs at line 701
RevCursor<Self, &'a Self, Self::RevchangesetCursor, u64, (ChangeId, Merkle)>,RevCursor<Self, &'a Self, Self::RevchangesetCursor, L64, Pair<ChangeId, SerializedMerkle>>, - replacement in libpijul/src/pristine/sanakirja.rs at line 704
let cursor = if let Some(pos) = pos {if let Ok((x, _)) = self.txn.set_cursors(channel, Some((pos, None))) {x} else {return Err(TxnErr(SanakirjaError::PristineCorrupt));}} else if let Ok(x) = self.txn.set_cursors_last(channel) {xlet mut cursor = btree::cursor::Cursor::new(&self.txn, channel)?;if let Some(ref pos) = pos {cursor.set(&self.txn, pos, None)?; - replacement in libpijul/src/pristine/sanakirja.rs at line 708
return Err(TxnErr(SanakirjaError::PristineCorrupt));cursor.set_last(&self.txn)?; - replacement in libpijul/src/pristine/sanakirja.rs at line 713
marker: std::marker::PhantomData,k: std::marker::PhantomData,v: std::marker::PhantomData,t: std::marker::PhantomData, - replacement in libpijul/src/pristine/sanakirja.rs at line 722
) -> Result<Option<(u64, (ChangeId, Merkle))>, TxnErr<SanakirjaError>> {if let Ok(x) = unsafe { ::sanakirja::next(&self.txn, cursor) } {) -> Result<Option<(&L64, &Pair<ChangeId, SerializedMerkle>)>, TxnErr<SanakirjaError>> {if let Ok(x) = cursor.next(&self.txn) { - replacement in libpijul/src/pristine/sanakirja.rs at line 732
) -> Result<Option<(u64, (ChangeId, Merkle))>, TxnErr<SanakirjaError>> {if let Ok(x) = unsafe { ::sanakirja::prev(&self.txn, cursor) } {) -> Result<Option<(&L64, &Pair<ChangeId, SerializedMerkle>)>, TxnErr<SanakirjaError>> {if let Ok(x) = cursor.prev(&self.txn) { - replacement in libpijul/src/pristine/sanakirja.rs at line 743
) -> Result<Option<(ChangeId, u64)>, TxnErr<SanakirjaError>> {if let Ok(x) = unsafe { ::sanakirja::next(&self.txn, cursor) } {) -> Result<Option<(&ChangeId, &L64)>, TxnErr<SanakirjaError>> {if let Ok(x) = cursor.next(&self.txn) { - replacement in libpijul/src/pristine/sanakirja.rs at line 753
) -> Result<Option<(ChangeId, u64)>, TxnErr<SanakirjaError>> {if let Ok(x) = unsafe { ::sanakirja::prev(&self.txn, cursor) } {) -> Result<Option<(&ChangeId, &L64)>, TxnErr<SanakirjaError>> {if let Ok(x) = cursor.prev(&self.txn) { - replacement in libpijul/src/pristine/sanakirja.rs at line 761
type States = ::sanakirja::Db<Merkle, u64>;type States = UDb<SerializedMerkle, L64>; - replacement in libpijul/src/pristine/sanakirja.rs at line 768
m: Merkle,) -> Result<Option<u64>, TxnErr<Self::GraphError>> {Ok(self.txn.get(channel, m, None)?)m: &SerializedMerkle,) -> Result<Option<L64>, TxnErr<Self::GraphError>> {match btree::get(&self.txn, channel, m, None)? {Some((k, v)) if k == m => Ok(Some(*v)),_ => Ok(None)} - replacement in libpijul/src/pristine/sanakirja.rs at line 777
impl<T: ::sanakirja::Transaction> DepsTxnT for GenericTxn<T> {impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> DepsTxnT for GenericTxn<T> { - edit in libpijul/src/pristine/sanakirja.rs at line 784
type DepCursor = ::sanakirja::btree::cursor::Cursor<ChangeId, ChangeId, P<ChangeId, ChangeId>>; - replacement in libpijul/src/pristine/sanakirja.rs at line 788
p: ChangeId,p: &ChangeId, - edit in libpijul/src/pristine/sanakirja.rs at line 800
type Touched_filesCursor = ::sanakirja::btree::cursor::Cursor<Position<ChangeId>,ChangeId,P<Position<ChangeId>, ChangeId>,>; - edit in libpijul/src/pristine/sanakirja.rs at line 807
type Rev_touched_filesCursor = ::sanakirja::btree::cursor::Cursor<ChangeId,Position<ChangeId>,P<ChangeId, Position<ChangeId>>,>; - replacement in libpijul/src/pristine/sanakirja.rs at line 816
k: ChangeId,k: &ChangeId, - replacement in libpijul/src/pristine/sanakirja.rs at line 826
k: ChangeId,k: &ChangeId, - replacement in libpijul/src/pristine/sanakirja.rs at line 836
k: Position<ChangeId>,k: &Position<ChangeId>, - replacement in libpijul/src/pristine/sanakirja.rs at line 846
k: ChangeId,k: &ChangeId, - replacement in libpijul/src/pristine/sanakirja.rs at line 855
impl<T: ::sanakirja::Transaction> TreeTxnT for GenericTxn<T> {impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> TreeTxnT for GenericTxn<T> { - replacement in libpijul/src/pristine/sanakirja.rs at line 865[18.545779]→[18.545779:545820](∅→∅),[18.545820]→[18.43460:43606](∅→∅),[18.43606]→[18.545909:546725](∅→∅),[18.545909]→[18.545909:546725](∅→∅)
type Tree = Db<UnsafePathId, Inode>;sanakirja_table_get!(tree,PathId,Inode,TreeError,(UnsafePathId::from_fileid(key), value),);sanakirja_iter!(tree,OwnedPathId,Inode,if let Some((ref k, ref v)) = pos {info!("tree iter {:?} {:?}", k, v);Some((UnsafePathId::from_fileid(k.as_file_id()), *v))} else {None},map(|(k, v): (UnsafePathId, Inode)| (unsafe { k.to_fileid().to_owned() }, v)));sanakirja_iter!(revtree,Inode,OwnedPathId,if let Some((ref k, ref v)) = pos {let v = if let Some(ref v) = *v {Some(UnsafePathId::from_fileid(v.as_file_id()))} else {None};Some((*k, v))} else {None},map(|(k, v): (Inode, UnsafePathId)| (k, unsafe { v.to_fileid().to_owned() })));type Tree = UDb<PathId, Inode>;sanakirja_table_get!(tree, PathId, Inode, TreeError,);type TreeCursor =::sanakirja::btree::cursor::Cursor<PathId, Inode, UP<PathId, Inode>>;sanakirja_iter!(tree, PathId, Inode,);type RevtreeCursor =::sanakirja::btree::cursor::Cursor<Inode, PathId, UP<Inode, PathId>>;sanakirja_iter!(revtree, Inode, PathId); - replacement in libpijul/src/pristine/sanakirja.rs at line 874[18.36942]→[18.546744:546862](∅→∅),[18.546744]→[18.546744:546862](∅→∅),[18.546862]→[18.43607:43626](∅→∅),[18.43626]→[18.546862:547109](∅→∅),[18.546862]→[18.546862:547109](∅→∅)
type Revtree = Db<Inode, UnsafePathId>;sanakirja_table_get!(revtree,Inode,PathId,TreeError,(key,if let Some(value) = value {Some(UnsafePathId::from_fileid(value))} else {None}),map(|value| unsafe { value.to_fileid() }));type Revtree = UDb<Inode, PathId>;sanakirja_table_get!(revtree, Inode, PathId, TreeError,); - replacement in libpijul/src/pristine/sanakirja.rs at line 877
type Partials = Db<UnsafeSmallStr, Position<ChangeId>>;sanakirja_cursor!(partials,SmallString,type Partials = UDb<SmallStr, Position<ChangeId>>;type PartialsCursor = ::sanakirja::btree::cursor::Cursor<SmallStr, - replacement in libpijul/src/pristine/sanakirja.rs at line 881
if let Some((ref k, ref v)) = pos {Some((UnsafeSmallStr::from_small_str(k.as_small_str()), *v))} else {None},map(|(k, v): (UnsafeSmallStr, Position<ChangeId>)| (unsafe { k.to_small_str().to_owned() },v)));UP<SmallStr, Position<ChangeId>>,>;sanakirja_cursor!(partials, SmallStr, Position<ChangeId>,);type InodesCursor =::sanakirja::btree::cursor::Cursor<Inode, Position<ChangeId>, P<Inode, Position<ChangeId>>>; - edit in libpijul/src/pristine/sanakirja.rs at line 895
#[cfg(debug_assertions)]type RevinodesCursor =::sanakirja::btree::cursor::Cursor<Position<ChangeId>, Inode, P<Position<ChangeId>, Inode>>; - replacement in libpijul/src/pristine/sanakirja.rs at line 912
super::Cursor<Self, &'txn Self, Self::PartialsCursor, SmallString, Position<ChangeId>>,super::Cursor<Self, &'txn Self, Self::PartialsCursor, SmallStr, Position<ChangeId>>, - replacement in libpijul/src/pristine/sanakirja.rs at line 916
self.cursor_partials(&self.partials, Some((k0, None)))self.cursor_partials(&self.partials, Some((&k0, None))) - replacement in libpijul/src/pristine/sanakirja.rs at line 920
impl<T: ::sanakirja::Transaction> GenericTxn<T> {impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> GenericTxn<T> { - replacement in libpijul/src/pristine/sanakirja.rs at line 926
if let Some((channel, changes, revchanges, states, counter, last_modified)) = self.txn.get(&self.channels,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)? {debug!("unsafe_load_channel: found {:?} {:?}", changes, revchanges);Ok(Some(Channel {graph: channel,changes,revchanges,apply_counter: counter,states,name: name.clone(),last_modified,}))} else {debug!("unsafe_load_channel: not found");Ok(None)match btree::get(&self.txn, &self.channels, &name, None)? {Some((name_, tup)) => {assert_eq!(name_, name.as_ref());debug!("load_channel: {:?} {:?}", name, tup);Ok(Some(Channel {graph: Db::from_page(tup.0[0].into()),changes: Db::from_page(tup.0[1].into()),revchanges: UDb::from_page(tup.0[2].into()),states: UDb::from_page(tup.0[3].into()),apply_counter: tup.0[4].into(),last_modified: tup.0[5].into(),name,}))}_ => {debug!("unsafe_load_channel: not found");Ok(None)} - replacement in libpijul/src/pristine/sanakirja.rs at line 948
impl<T: ::sanakirja::Transaction> TxnT for GenericTxn<T> {impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>> TxnT for GenericTxn<T> { - replacement in libpijul/src/pristine/sanakirja.rs at line 953
let h = if let Some(h) = Hash::from_prefix(s) {hlet h: SerializedHash = if let Some(ref h) = Hash::from_prefix(s) {h.into() - replacement in libpijul/src/pristine/sanakirja.rs at line 960
for x in self.txn.iter(&self.internal, Some((h, None)))for x in btree::iter(&self.txn, &self.internal, Some((&h, None))) - replacement in libpijul/src/pristine/sanakirja.rs at line 965
if e < h {if e < &h { - edit in libpijul/src/pristine/sanakirja.rs at line 968
let e: Hash = e.into(); - replacement in libpijul/src/pristine/sanakirja.rs at line 975
result = Some((e, i))result = Some((e, *i)) - replacement in libpijul/src/pristine/sanakirja.rs at line 994
let h = if let Some(h) = Hash::from_prefix(s) {hlet h: SerializedHash = if let Some(h) = Hash::from_prefix(s) {(&h).into() - replacement in libpijul/src/pristine/sanakirja.rs at line 1001
for x in self.txn.iter(&remote.rev, Some((h, None)))for x in btree::iter(&self.txn, &remote.rev, Some((&h, None))) - replacement in libpijul/src/pristine/sanakirja.rs at line 1006
if e < h {if e < &h { - edit in libpijul/src/pristine/sanakirja.rs at line 1009
let e: Hash = e.into(); - replacement in libpijul/src/pristine/sanakirja.rs at line 1055[18.550535]→[18.550535:550721](∅→∅),[18.550721]→[18.47574:47595](∅→∅),[18.47595]→[18.550741:551070](∅→∅),[18.550741]→[18.550741:551070](∅→∅),[18.551070]→[18.45271:45321](∅→∅),[18.45321]→[18.551103:551128](∅→∅),[18.551103]→[18.551103:551128](∅→∅),[18.551128]→[18.47596:47633](∅→∅)
if let Some(remote) = self.txn.get(&self.remotes,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)? {let r = RemoteRef {db: Rc::new(RefCell::new(Remote {remote: remote.0,rev: remote.1,states: remote.2,})),name: name.clone(),};Ok(Some(v.insert(r).clone()))} else {return Ok(None);match btree::get(&self.txn, &self.remotes, &name, None)? {Some((name_, remote)) if name.as_ref() == name_ => {debug!("load_remote: {:?} {:?}", name_, remote);let r = Remote {remote: UDb::from_page(remote.0[0].into()),rev: UDb::from_page(remote.0[1].into()),states: UDb::from_page(remote.0[2].into()),};for x in btree::iter(&self.txn, &r.remote, None).unwrap() {debug!("remote -> {:?}", x);}for x in btree::iter(&self.txn, &r.rev, None).unwrap() {debug!("rev -> {:?}", x);}for x in btree::iter(&self.txn, &r.states, None).unwrap() {debug!("states -> {:?}", x);}for x in self.iter_remote(&r.remote, 0).unwrap() {debug!("ITER {:?}", x);}let r = RemoteRef {db: Rc::new(RefCell::new(r)),name: name.clone(),};Ok(Some(v.insert(r).clone()))}_ => return Ok(None) - replacement in libpijul/src/pristine/sanakirja.rs at line 1091
type Channels = Db<UnsafeSmallStr, (u64, u64, u64, u64, u64, u64)>;sanakirja_cursor!(channels,SmallString,(u64, u64, u64, u64, u64, u64),if let Some((ref k, ref v)) = pos {Some((UnsafeSmallStr::from_small_str(k.as_small_str()), *v))} else {None},map(|(k, v): (UnsafeSmallStr, (u64, u64, u64, u64, u64, u64))| (unsafe { k.to_small_str().to_owned() },v)));type Channels = UDb<SmallStr, T6>;type ChannelsCursor = ::sanakirja::btree::cursor::Cursor<SmallStr, T6, UP<SmallStr, T6>>;sanakirja_cursor!(channels, SmallStr, T6,); - replacement in libpijul/src/pristine/sanakirja.rs at line 1099[18.551947]→[18.551947:552019](∅→∅),[18.552019]→[18.47837:47947](∅→∅),[18.47947]→[18.552125:552148](∅→∅),[18.552125]→[18.552125:552148](∅→∅),[18.552148]→[18.47948:47959](∅→∅)
let name = UnsafeSmallStr::from_small_str(name.as_small_str());Ok(ChannelIterator {cursor: self.txn.set_cursors(&self.channels, Some((name, None)))?.0,txn: self,})let mut cursor = btree::cursor::Cursor::new(&self.txn, &self.channels)?;cursor.set(&self.txn, &name, None)?;Ok(ChannelIterator { cursor, txn: self }) - replacement in libpijul/src/pristine/sanakirja.rs at line 1104
type Remotes = Db<UnsafeSmallStr, (u64, u64, u64)>;sanakirja_cursor!(remotes,SmallString,(u64, u64, u64),if let Some((ref k, ref v)) = pos {Some((UnsafeSmallStr::from_small_str(k.as_small_str()), *v))} else {None},map(|(k, v): (UnsafeSmallStr, (u64, u64, u64))| (unsafe { k.to_small_str().to_owned() },v)));type Remotes = UDb<SmallStr, T3>;type RemotesCursor = ::sanakirja::btree::cursor::Cursor<SmallStr, T3, UP<SmallStr, T3>>;sanakirja_cursor!(remotes, SmallStr, T3); - replacement in libpijul/src/pristine/sanakirja.rs at line 1112[18.552744]→[18.552744:552816](∅→∅),[18.552816]→[18.48102:48211](∅→∅),[18.48211]→[18.552921:552944](∅→∅),[18.552921]→[18.552921:552944](∅→∅),[18.552944]→[18.48212:48223](∅→∅)
let name = UnsafeSmallStr::from_small_str(name.as_small_str());Ok(RemotesIterator {cursor: self.txn.set_cursors(&self.remotes, Some((name, None)))?.0,txn: self,})let mut cursor = btree::cursor::Cursor::new(&self.txn, &self.remotes)?;cursor.set(&self.txn, &name, None)?;Ok(RemotesIterator { cursor, txn: self }) - replacement in libpijul/src/pristine/sanakirja.rs at line 1117
type Remote = Db<u64, (Hash, Merkle)>;type Revremote = Db<Hash, u64>;type Remotestates = Db<Merkle, u64>;sanakirja_cursor!(remote, u64, (Hash, Merkle));sanakirja_rev_cursor!(remote, u64, (Hash, Merkle));type Remote = UDb<L64, Pair<SerializedHash, SerializedMerkle>>;type Revremote = UDb<SerializedHash, L64>;type Remotestates = UDb<SerializedMerkle, L64>;type RemoteCursor = ::sanakirja::btree::cursor::Cursor<L64,Pair<SerializedHash, SerializedMerkle>,UP<L64, Pair<SerializedHash, SerializedMerkle>>,>;sanakirja_cursor!(remote, L64, Pair<SerializedHash, SerializedMerkle>);sanakirja_rev_cursor!(remote, L64, Pair<SerializedHash, SerializedMerkle>); - replacement in libpijul/src/pristine/sanakirja.rs at line 1133
super::Cursor<Self, &'txn Self, Self::RemoteCursor, u64, (Hash, Merkle)>,super::Cursor<Self,&'txn Self,Self::RemoteCursor,L64,Pair<SerializedHash, SerializedMerkle>,>, - replacement in libpijul/src/pristine/sanakirja.rs at line 1142
self.cursor_remote(remote, Some((k, None)))self.cursor_remote(remote, Some((&k.into(), None))) - replacement in libpijul/src/pristine/sanakirja.rs at line 1148
k: Option<u64>,k: Option<L64>, - replacement in libpijul/src/pristine/sanakirja.rs at line 1150
super::RevCursor<Self, &'txn Self, Self::RemoteCursor, u64, (Hash, Merkle)>,super::RevCursor<Self,&'txn Self,Self::RemoteCursor,L64,Pair<SerializedHash, SerializedMerkle>,>, - replacement in libpijul/src/pristine/sanakirja.rs at line 1159
self.rev_cursor_remote(remote, k.map(|k| (k, None)))self.rev_cursor_remote(remote, k.as_ref().map(|k| (k, None))) - replacement in libpijul/src/pristine/sanakirja.rs at line 1169[18.555461]→[18.555461:555647](∅→∅),[18.555647]→[18.48639:48660](∅→∅),[18.48660]→[18.555667:556054](∅→∅),[18.555667]→[18.555667:556054](∅→∅),[18.556054]→[18.48661:48698](∅→∅)
if let Some(remote) = self.txn.get(&self.remotes,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)? {let r = RemoteRef {db: Rc::new(RefCell::new(Remote {remote: remote.0,rev: remote.1,states: remote.2,})),name: name.clone(),};v.insert(r);} else {return Ok(None);match btree::get(&self.txn, &self.remotes, &name, None)? {Some((name_, remote)) if name_ == name.as_ref() => {let r = RemoteRef {db: Rc::new(RefCell::new(Remote {remote: UDb::from_page(remote.0[0].into()),rev: UDb::from_page(remote.0[1].into()),states: UDb::from_page(remote.0[2].into()),})),name: name.clone(),};v.insert(r);}_ => return Ok(None), - replacement in libpijul/src/pristine/sanakirja.rs at line 1192
) -> Result<Option<(u64, (Hash, Merkle))>, TxnErr<Self::GraphError>> {Ok(self.txn.rev_iter(remote, None)?.next().transpose()?)) -> Result<Option<(u64, &Pair<SerializedHash, SerializedMerkle>)>, TxnErr<Self::GraphError>>{if let Some(x) = btree::rev_iter(&self.txn, remote, None)?.next() {let (&k, v) = x?;Ok(Some((k.into(), v)))} else {Ok(None)} - replacement in libpijul/src/pristine/sanakirja.rs at line 1206
) -> Result<Option<(u64, (Hash, Merkle))>, TxnErr<Self::GraphError>> {for x in self.txn.iter(remote, Some((n, None)))? {let (k, m) = x?;) -> Result<Option<(u64, &Pair<SerializedHash, SerializedMerkle>)>, TxnErr<Self::GraphError>>{let n = n.into();for x in btree::iter(&self.txn, remote, Some((&n, None)))? {let (&k, m) = x?; - replacement in libpijul/src/pristine/sanakirja.rs at line 1212
return Ok(Some((k, m)));return Ok(Some((k.into(), m))); - replacement in libpijul/src/pristine/sanakirja.rs at line 1221
hash: Hash,hash: &SerializedHash, - replacement in libpijul/src/pristine/sanakirja.rs at line 1223
Ok(self.txn.get(&remote.db.borrow().rev, hash, None)?.is_some())match btree::get(&self.txn, &remote.db.borrow().rev, hash, None)? {Some((k, _)) if k == hash => Ok(true),_ => Ok(false)} - replacement in libpijul/src/pristine/sanakirja.rs at line 1231
m: Merkle,m: &SerializedMerkle, - replacement in libpijul/src/pristine/sanakirja.rs at line 1233
Ok(self.txn.get(&remote.db.borrow().states, m, None)?.is_some())match btree::get(&self.txn, &remote.db.borrow().states, m, None)? {Some((k, _)) if k == m => Ok(true),_ => Ok(false)} - replacement in libpijul/src/pristine/sanakirja.rs at line 1244
k: Vertex<ChangeId>,e: Edge,k: &Vertex<ChangeId>,e: &SerializedEdge, - replacement in libpijul/src/pristine/sanakirja.rs at line 1247[18.14321]→[18.559047:559101](∅→∅),[18.50063]→[18.559047:559101](∅→∅),[18.559047]→[18.559047:559101](∅→∅)
Ok(self.txn.put(&mut self.rng, graph, k, e)?)Ok(btree::put(&mut self.txn, graph, k, e)?) - replacement in libpijul/src/pristine/sanakirja.rs at line 1253
k: Vertex<ChangeId>,e: Option<Edge>,k: &Vertex<ChangeId>,e: Option<&SerializedEdge>, - replacement in libpijul/src/pristine/sanakirja.rs at line 1256[18.14359]→[18.559289:559388](∅→∅),[18.50114]→[18.559289:559388](∅→∅),[18.559289]→[18.559289:559388](∅→∅)
debug!("del_graph {:?} {:?}", k, e);Ok(self.txn.del(&mut self.rng, graph, k, e)?)Ok(btree::del(&mut self.txn, graph, k, e)?) - replacement in libpijul/src/pristine/sanakirja.rs at line 1258
sanakirja_put_del!(internal, Hash, ChangeId, GraphError);sanakirja_put_del!(external, ChangeId, Hash, GraphError);sanakirja_put_del!(internal, SerializedHash, ChangeId, GraphError);sanakirja_put_del!(external, ChangeId, SerializedHash, GraphError); - replacement in libpijul/src/pristine/sanakirja.rs at line 1264
key: Vertex<ChangeId>,key: &Vertex<ChangeId>, - replacement in libpijul/src/pristine/sanakirja.rs at line 1266
buf: &mut Vec<Edge>,buf: &mut Vec<SerializedEdge>, - replacement in libpijul/src/pristine/sanakirja.rs at line 1270
let (mut cursor, _) = self.txn.set_cursors(graph, Some((key, None)))?;let mut cursor = btree::cursor::Cursor::new(&self.txn, graph)?;cursor.set(&self.txn, key, None)?; - replacement in libpijul/src/pristine/sanakirja.rs at line 1273
match unsafe { ::sanakirja::next::<_, Vertex<ChangeId>, Edge>(&self.txn, &mut cursor) }{match cursor.next(&self.txn) { - replacement in libpijul/src/pristine/sanakirja.rs at line 1280
buf.push(v)buf.push(*v) - replacement in libpijul/src/pristine/sanakirja.rs at line 1283
Err(::sanakirja::CRCError {}) => {return Err(TxnErr(SanakirjaError::PristineCorrupt))Err(e) => {error!("{:?}", e);return Err(TxnErr(SanakirjaError::PristineCorrupt)); - replacement in libpijul/src/pristine/sanakirja.rs at line 1290
assert!(chi.introduced_by != ChangeId::ROOT || chi.flag.contains(EdgeFlags::PSEUDO));if chi.flag.contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {assert!(chi.introduced_by() != ChangeId::ROOT || chi.flag().contains(EdgeFlags::PSEUDO));if chi.flag().contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) { - replacement in libpijul/src/pristine/sanakirja.rs at line 1297
chi.flag - EdgeFlags::PARENT,chi.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/pristine/sanakirja.rs at line 1308
chi.introduced_by,chi.introduced_by(), - replacement in libpijul/src/pristine/sanakirja.rs at line 1312
self.del_graph(graph, key, Some(chi))?;self.del_graph(graph, key, Some(&chi))?; - replacement in libpijul/src/pristine/sanakirja.rs at line 1315
if chi.flag.contains(EdgeFlags::PARENT) {&if chi.flag().contains(EdgeFlags::PARENT) { - replacement in libpijul/src/pristine/sanakirja.rs at line 1328
chi,&chi, - replacement in libpijul/src/pristine/sanakirja.rs at line 1342
channel.last_modified = tchannel.last_modified = t.into() - replacement in libpijul/src/pristine/sanakirja.rs at line 1344
channel.last_modified = duration.as_secs()channel.last_modified = duration.as_secs().into() - replacement in libpijul/src/pristine/sanakirja.rs at line 1355
if self.get_changeset(&channel.changes, p)?.is_none() {debug!("put_changes {:?} {:?}", p, h);if let Some(m) = self.get_changeset(&channel.changes, &p)? {debug!("found m = {:?}, p = {:?}", m, p);Ok(None)} else { - replacement in libpijul/src/pristine/sanakirja.rs at line 1362[18.560477]→[18.48160:48287](∅→∅),[18.48287]→[18.50411:50528](∅→∅),[18.560477]→[18.50411:50528](∅→∅)
for i in self.txn.iter(&channel.changes, None).unwrap() {debug!("changes {:?}", i);}let m = if let Some(x) = self.txn.rev_iter(&channel.revchanges, None)?.next() {(x?.1).1let m = if let Some(x) = btree::rev_iter(&self.txn, &channel.revchanges, None)?.next() {(&(x?.1).b).into() - edit in libpijul/src/pristine/sanakirja.rs at line 1368[18.560694]→[18.48288:48367](∅→∅),[18.48367]→[18.560812:560891](∅→∅),[18.560812]→[18.560812:560891](∅→∅)
assert!(self.get_revchangeset(&channel.revchanges, t)?.is_none());assert!(self.txn.put(&mut self.rng, &mut channel.changes, p, t)?); - replacement in libpijul/src/pristine/sanakirja.rs at line 1369
.txn.put(&mut self.rng, &mut channel.revchanges, t, (p, m))?);Ok(Some(m))} else {Ok(None).get_revchangeset(&channel.revchanges, &t.into())?.is_none());assert!(btree::put(&mut self.txn,&mut channel.changes,&p,&t.into())?);assert!(btree::put(&mut self.txn,&mut channel.revchanges,&t.into(),&Pair { a: p, b: m.into() })?);Ok(Some(m.into())) - replacement in libpijul/src/pristine/sanakirja.rs at line 1394[18.561308]→[18.50646:50753](∅→∅),[18.50753]→[18.561390:561450](∅→∅),[18.561390]→[18.561390:561450](∅→∅)
for x in self.txn.iter(&channel.revchanges, Some((t, None)))? {let (t_, (p, _)) = x?;if t_ >= t {repl.push((t_, p))let tl = t.into();for x in btree::iter(&self.txn, &channel.revchanges, Some((&tl, None)))? {let (t_, p) = x?;if *t_ >= tl {repl.push((*t_, p.a)) - replacement in libpijul/src/pristine/sanakirja.rs at line 1402[18.561510]→[18.50754:50866](∅→∅),[18.50866]→[18.561597:561645](∅→∅),[18.561597]→[18.561597:561645](∅→∅)
for x in self.txn.rev_iter(&channel.revchanges, Some((t, None)))? {let (t_, (_, m_)) = x?;if t_ < t {m = m_;for x in btree::rev_iter(&self.txn, &channel.revchanges, Some((&tl, None)))? {let (t_, mm) = x?;if t_ < &tl {m = (&mm.b).into(); - replacement in libpijul/src/pristine/sanakirja.rs at line 1411[18.561781]→[18.561781:561901](∅→∅),[18.561901]→[18.50867:50929](∅→∅),[18.50929]→[18.561962:562068](∅→∅),[18.561962]→[18.561962:562068](∅→∅)
self.txn.del(&mut self.rng, &mut channel.revchanges, *t_, None)?;if *t_ > t {m = m.next(&self.get_external(*p)?.unwrap());self.txn.put(&mut self.rng, &mut channel.revchanges, *t_, (*p, m))?;btree::del(&mut self.txn, &mut channel.revchanges, t_, None)?;if *t_ > tl {m = m.next(&self.get_external(p)?.unwrap().into());btree::put(&mut self.txn,&mut channel.revchanges,t_,&Pair { a: *p, b: m.into() },)?; - replacement in libpijul/src/pristine/sanakirja.rs at line 1422
Ok(self.txn.del(&mut self.rng, &mut channel.changes, p, Some(t))?)Ok(btree::del(&mut self.txn,&mut channel.changes,&p,Some(&t.into()),)?) - replacement in libpijul/src/pristine/sanakirja.rs at line 1442
sanakirja_put_del!(tree,PathId,Inode,TreeError,UnsafePathId::from_fileid(k),v);sanakirja_put_del!(revtree,Inode,PathId,TreeError,k,UnsafePathId::from_fileid(v));sanakirja_put_del!(tree, PathId, Inode, TreeError,);sanakirja_put_del!(revtree, Inode, PathId, TreeError,); - replacement in libpijul/src/pristine/sanakirja.rs at line 1451
Ok(self.txn.put(&mut self.rng,&mut self.partials,UnsafeSmallStr::from_small_str(k.as_small_str()),e,)?)Ok(btree::put(&mut self.txn, &mut self.partials, &k, &e)?) - replacement in libpijul/src/pristine/sanakirja.rs at line 1460
Ok(self.txn.del(&mut self.rng,Ok(btree::del(&mut self.txn, - replacement in libpijul/src/pristine/sanakirja.rs at line 1463
UnsafeSmallStr::from_small_str(k.as_small_str()),e,&k,e.as_ref(), - replacement in libpijul/src/pristine/sanakirja.rs at line 1477
self.txn.put(&mut self.rng, &mut remote.remote, k, v)?;self.txn.put(&mut self.rng, &mut remote.states, v.1, k)?;Ok(self.txn.put(&mut self.rng, &mut remote.rev, v.0, k)?)let h = (&v.0).into();let m: SerializedMerkle = (&v.1).into();btree::put(&mut self.txn,&mut remote.remote,&k.into(),&Pair { a: h, b: m.clone() },)?;btree::put(&mut self.txn, &mut remote.states, &m, &k.into())?;Ok(btree::put(&mut self.txn, &mut remote.rev, &h, &k.into())?) - replacement in libpijul/src/pristine/sanakirja.rs at line 1495[18.562753]→[18.52662:52733](∅→∅),[18.52733]→[18.562823:563075](∅→∅),[18.562823]→[18.562823:563075](∅→∅)
if let Some((h, m)) = self.txn.get(&remote.remote, k, None)? {self.txn.del(&mut self.rng, &mut remote.rev, h, None)?;self.txn.del(&mut self.rng, &mut remote.states, m, None)?;Ok(self.txn.del(&mut self.rng, &mut remote.remote, k, None)?)} else {Ok(false)let k = k.into();match btree::get(&self.txn, &remote.remote, &k, None)? {Some((k0, p)) if k0 == &k => {debug!("del_remote {:?} {:?}", k0, p);let p = p.clone();btree::del(&mut self.txn, &mut remote.rev, &p.a, None)?;btree::del(&mut self.txn, &mut remote.states, &p.b, None)?;Ok(btree::del(&mut self.txn,&mut remote.remote,&k.into(),None,)?)}x => {debug!("not found, {:?}", x);Ok(false)} - replacement in libpijul/src/pristine/sanakirja.rs at line 1517[18.14812]→[18.563190:563252](∅→∅),[18.52835]→[18.563190:563252](∅→∅),[18.563190]→[18.563190:563252](∅→∅)
let name = small_string::SmallString::from_str(name);let name = crate::small_string::SmallString::from_str(name); - replacement in libpijul/src/pristine/sanakirja.rs at line 1521[18.563385]→[18.563385:563779](∅→∅),[18.563779]→[18.52836:52857](∅→∅),[18.52857]→[18.563799:564757](∅→∅),[18.563799]→[18.563799:564757](∅→∅)
let r = if let Some((graph,changes,revchanges,states,apply_counter,last_modified,)) = self.txn.get(&self.channels,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)? {ChannelRef {r: Rc::new(RefCell::new(Channel {graph,changes,revchanges,states,apply_counter,name: name.clone(),last_modified,})),}} else {let br = ChannelRef {r: Rc::new(RefCell::new(Channel {graph: self.txn.create_db()?,changes: self.txn.create_db()?,revchanges: self.txn.create_db()?,states: self.txn.create_db()?,apply_counter: 0,name: name.clone(),last_modified: 0,})),let r =match btree::get(&self.txn, &self.channels, &name, None)? {Some((name_, b)) => {assert_eq!(name_, name.as_ref());ChannelRef {r: Rc::new(RefCell::new(Channel {graph: Db::from_page(b.0[0].into()),changes: Db::from_page(b.0[1].into()),revchanges: UDb::from_page(b.0[2].into()),states: UDb::from_page(b.0[3].into()),apply_counter: b.0[4].into(),name: name.clone(),last_modified: b.0[5].into(),})),}}_ => {let br = ChannelRef {r: Rc::new(RefCell::new(Channel {graph: btree::create_db_(&mut self.txn)?,changes: btree::create_db_(&mut self.txn)?,revchanges: btree::create_db_(&mut self.txn)?,states: btree::create_db_(&mut self.txn)?,apply_counter: 0,name: name.clone(),last_modified: 0,})),};commit = Some(br.clone());br} - edit in libpijul/src/pristine/sanakirja.rs at line 1553
commit = Some(br.clone());br}; - replacement in libpijul/src/pristine/sanakirja.rs at line 1570
if self.txn.get(&self.channels,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)match btree::get(&self.txn, &self.channels, &name, None) - edit in libpijul/src/pristine/sanakirja.rs at line 1572
.is_none() - replacement in libpijul/src/pristine/sanakirja.rs at line 1573[18.565588]→[18.565588:565672](∅→∅),[18.565672]→[18.14874:15638](∅→∅),[18.15638]→[18.565984:566176](∅→∅),[18.565984]→[18.565984:566176](∅→∅),[18.566176]→[18.4215:4285](∅→∅),[18.4285]→[18.566288:566324](∅→∅),[18.566288]→[18.566288:566324](∅→∅),[18.566324]→[18.15639:15714](∅→∅)
let br = ChannelRef {r: Rc::new(RefCell::new(Channel {graph: self.txn.fork(&mut self.rng, &channel.graph).map_err(|e| ForkError::Txn(e.into()))?,changes: self.txn.fork(&mut self.rng, &channel.changes).map_err(|e| ForkError::Txn(e.into()))?,revchanges: self.txn.fork(&mut self.rng, &channel.revchanges).map_err(|e| ForkError::Txn(e.into()))?,states: self.txn.fork(&mut self.rng, &channel.states).map_err(|e| ForkError::Txn(e.into()))?,name: name.clone(),apply_counter: channel.apply_counter,last_modified: channel.last_modified,})),};self.open_channels.borrow_mut().insert(name, br.clone());Ok(br)} else {Err(super::ForkError::ChannelNameExists(new_name.to_string()))Some((name_, _)) if name_ == name.as_ref() =>Err(super::ForkError::ChannelNameExists(new_name.to_string())),_ => {let br = ChannelRef {r: Rc::new(RefCell::new(Channel {graph: btree::fork_db(&mut self.txn, &channel.graph).map_err(|e| ForkError::Txn(e.into()))?,changes: btree::fork_db(&mut self.txn, &channel.changes).map_err(|e| ForkError::Txn(e.into()))?,revchanges: btree::fork_db(&mut self.txn, &channel.revchanges).map_err(|e| ForkError::Txn(e.into()))?,states: btree::fork_db(&mut self.txn, &channel.states).map_err(|e| ForkError::Txn(e.into()))?,name: name.clone(),apply_counter: channel.apply_counter,last_modified: channel.last_modified,})),};self.open_channels.borrow_mut().insert(name, br.clone());Ok(br)} - replacement in libpijul/src/pristine/sanakirja.rs at line 1603
if self.txn.get(&self.channels,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)match btree::get(&self.txn, &self.channels, &name, None) - edit in libpijul/src/pristine/sanakirja.rs at line 1605
.is_none() - replacement in libpijul/src/pristine/sanakirja.rs at line 1606[18.566888]→[2.0:163](∅→∅),[2.163]→[18.15762:15840](∅→∅),[18.566888]→[18.15762:15840](∅→∅),[18.15840]→[2.164:203](∅→∅),[2.203]→[18.15880:15970](∅→∅),[18.15880]→[18.15880:15970](∅→∅)
let mut dbs_channels: ::sanakirja::Db<UnsafeSmallStr, (u64, u64, u64, u64, u64, u64)> =unsafe { std::mem::transmute(self.channels) };self.txn.del(&mut self.rng,&mut dbs_channels,UnsafeSmallStr::from_small_str(channel.borrow().name.as_small_str()),Some((name_, _)) if name_ == name.as_ref() =>Err(super::ForkError::ChannelNameExists(new_name.to_string())),_ => {btree::del(&mut self.txn,&mut self.channels,&channel.borrow().name, - replacement in libpijul/src/pristine/sanakirja.rs at line 1615[18.16014]→[18.16014:16071](∅→∅),[18.16071]→[2.204:278](∅→∅),[18.217]→[18.566888:566916](∅→∅),[2.278]→[18.566888:566916](∅→∅),[18.16071]→[18.566888:566916](∅→∅),[18.566888]→[18.566888:566916](∅→∅)
.map_err(|e| ForkError::Txn(e.into()))?;self.channels = unsafe { std::mem::transmute(dbs_channels) };std::mem::drop(.map_err(|e| ForkError::Txn(e.into()))?;std::mem::drop(self.open_channels.borrow_mut().remove(&channel.borrow().name).unwrap(),);std::cell::RefCell::borrow_mut(&std::rc::Rc::get_mut(&mut channel.r).unwrap()).name =name.clone(); - replacement in libpijul/src/pristine/sanakirja.rs at line 1626
.remove(&channel.borrow().name).unwrap(),);std::cell::RefCell::borrow_mut(&std::rc::Rc::get_mut(&mut channel.r).unwrap()).name =name.clone();self.open_channels.borrow_mut().insert(name, channel.clone());Ok(())} else {Err(ForkError::ChannelNameExists(new_name.to_string())).insert(name, channel.clone());Ok(())} - replacement in libpijul/src/pristine/sanakirja.rs at line 1636
let result = self.txn.del(&mut self.rng,&mut self.channels,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)?;let result = btree::del(&mut self.txn, &mut self.channels, &name, None)?; - replacement in libpijul/src/pristine/sanakirja.rs at line 1642[18.16310]→[18.568095:568157](∅→∅),[18.53261]→[18.568095:568157](∅→∅),[18.568095]→[18.568095:568157](∅→∅)
let name = small_string::SmallString::from_str(name);let name = crate::small_string::SmallString::from_str(name); - replacement in libpijul/src/pristine/sanakirja.rs at line 1646[18.568289]→[18.568289:568483](∅→∅),[18.568483]→[18.53262:53283](∅→∅),[18.53283]→[18.568503:569194](∅→∅),[18.568503]→[18.568503:569194](∅→∅)
let r = if let Some(remote) = self.txn.get(&self.remotes,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)? {RemoteRef {db: Rc::new(RefCell::new(Remote {remote: remote.0,rev: remote.1,states: remote.2,})),name: name.clone(),}} else {let br = RemoteRef {db: Rc::new(RefCell::new(Remote {remote: self.txn.create_db()?,rev: self.txn.create_db()?,states: self.txn.create_db()?,})),name: name.clone(),let r =match btree::get(&self.txn, &self.remotes, &name, None)? {Some((name_, remote)) if name_ == name.as_ref() => {RemoteRef {db: Rc::new(RefCell::new(Remote {remote: UDb::from_page(remote.0[0].into()),rev: UDb::from_page(remote.0[1].into()),states: UDb::from_page(remote.0[2].into()),})),name: name.clone(),}}_ => {let br = RemoteRef {db: Rc::new(RefCell::new(Remote {remote: btree::create_db_(&mut self.txn)?,rev: btree::create_db_(&mut self.txn)?,states: btree::create_db_(&mut self.txn)?,})),name: name.clone(),};commit = Some(br.clone());br} - edit in libpijul/src/pristine/sanakirja.rs at line 1671
commit = Some(br.clone());br}; - replacement in libpijul/src/pristine/sanakirja.rs at line 1686
Ok(self.txn.del(&mut self.rng,&mut self.remotes,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)?)Ok(btree::del(&mut self.txn, &mut self.remotes, &name, None)?) - replacement in libpijul/src/pristine/sanakirja.rs at line 1694
Ok(self.txn.del(&mut self.rng,&mut self.remotes,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)?)Ok(btree::del(&mut self.txn, &mut self.remotes, &name, None)?) - replacement in libpijul/src/pristine/sanakirja.rs at line 1710
for (_, remote) in open_remotes {for (name, remote) in open_remotes {debug!("commit remote {:?}", name); - replacement in libpijul/src/pristine/sanakirja.rs at line 1715
self.txn.set_root(Root::Tree as usize, self.tree);self.txn.set_root(Root::RevTree as usize, self.revtree);self.txn.set_root(Root::Inodes as usize, self.inodes);self.txn.set_root(Root::RevInodes as usize, self.revinodes);self.txn.set_root(Root::Internal as usize, self.internal);self.txn.set_root(Root::External as usize, self.external);self.txn.set_root(Root::RevDep as usize, self.revdep);self.txn.set_root(Root::Channels as usize, self.channels);self.txn.set_root(Root::Remotes as usize, self.remotes);self.txn.set_root(Root::Tree as usize, self.tree.db);self.txn.set_root(Root::RevTree as usize, self.revtree.db);self.txn.set_root(Root::Inodes as usize, self.inodes.db);self.txn.set_root(Root::RevInodes as usize, self.revinodes.db);self.txn.set_root(Root::Internal as usize, self.internal.db);self.txn.set_root(Root::External as usize, self.external.db);self.txn.set_root(Root::RevDep as usize, self.revdep.db);self.txn.set_root(Root::Channels as usize, self.channels.db);self.txn.set_root(Root::Remotes as usize, self.remotes.db); - replacement in libpijul/src/pristine/sanakirja.rs at line 1725
.set_root(Root::TouchedFiles as usize, self.touched_files);self.txn.set_root(Root::Dep as usize, self.dep);.set_root(Root::TouchedFiles as usize, self.touched_files.db);self.txn.set_root(Root::Dep as usize, self.dep.db); - replacement in libpijul/src/pristine/sanakirja.rs at line 1728
.set_root(Root::RevTouchedFiles as usize, self.rev_touched_files);self.txn.set_root(Root::Partials as usize, self.partials);.set_root(Root::RevTouchedFiles as usize, self.rev_touched_files.db);self.txn.set_root(Root::Partials as usize, self.partials.db); - replacement in libpijul/src/pristine/sanakirja.rs at line 1739[18.572209]→[18.572209:572420](∅→∅),[18.572420]→[18.53621:53664](∅→∅),[18.53664]→[18.572459:572491](∅→∅),[18.572459]→[18.572459:572491](∅→∅),[18.572491]→[18.247:300](∅→∅),[18.300]→[18.572565:572629](∅→∅),[18.572565]→[18.572565:572629](∅→∅),[18.572629]→[18.357:379](∅→∅),[18.379]→[18.572665:572696](∅→∅),[18.572665]→[18.572665:572696](∅→∅),[18.572696]→[18.53665:53681](∅→∅),[18.53681]→[18.572711:572728](∅→∅),[18.572711]→[18.572711:572728](∅→∅),[18.572728]→[18.53682:53703](∅→∅)
if let Some((channel, changes, revchanges, states, counter, last_modified)) = self.txn.get(&self.channels,UnsafeSmallStr::from_small_str(name.as_small_str()),None,)? {Ok(Some(Channel {graph: channel,changes,revchanges,states,apply_counter: counter,name,last_modified,}))} else {Ok(None)match btree::get(&self.txn, &self.channels, &name, None)? {Some((name_, c)) => {assert_eq!(name.as_ref(), name_);debug!("load_const_channel = {:?} {:?}", name_ ,c);Ok(Some(Channel {graph: Db::from_page(c.0[0].into()),changes: Db::from_page(c.0[1].into()),revchanges: UDb::from_page(c.0[2].into()),states: UDb::from_page(c.0[3].into()),apply_counter: c.0[4].into(),last_modified: c.0[5].into(),name,}))}_ => Ok(None) - replacement in libpijul/src/pristine/sanakirja.rs at line 1771
let mut dbs_channels: ::sanakirja::Db<UnsafeSmallStr, (u64, u64, u64, u64, u64, u64)> =unsafe { std::mem::transmute(self.channels) };debug!("Commit_channel, dbs_channels = {:?}", dbs_channels);self.txn.del(&mut self.rng,&mut dbs_channels,UnsafeSmallStr::from_small_str(channel.name.as_small_str()),debug!("Commit_channel, dbs_channels = {:?}", self.channels);btree::del(&mut self.txn,&mut self.channels,&channel.name, - replacement in libpijul/src/pristine/sanakirja.rs at line 1778
debug!("Commit_channel, dbs_channels = {:?}", dbs_channels);self.channels = unsafe { std::mem::transmute(dbs_channels) };self.txn.put(&mut self.rng,let t6 = T6([channel.graph.db.into(),channel.changes.db.into(),channel.revchanges.db.into(),channel.states.db.into(),channel.apply_counter.into(),channel.last_modified.into(),]);debug!("t6 = {:?}", t6);btree::put(&mut self.txn, - replacement in libpijul/src/pristine/sanakirja.rs at line 1790
UnsafeSmallStr::from_small_str(channel.name.as_small_str()),(channel.graph,channel.changes,channel.revchanges,channel.states,channel.apply_counter,channel.last_modified,),&channel.name,&t6, - replacement in libpijul/src/pristine/sanakirja.rs at line 1793
debug!("Commit_channel, self.dbs.channels = {:?}", self.channels);debug!("Commit_channel, self.channels = {:?}", self.channels); - replacement in libpijul/src/pristine/sanakirja.rs at line 1808[18.16806]→[18.574980:575336](∅→∅),[18.53791]→[18.574980:575336](∅→∅),[18.574980]→[18.574980:575336](∅→∅)
let mut dbs_remotes: ::sanakirja::Db<UnsafeSmallStr, (u64, u64, u64)> =unsafe { std::mem::transmute(self.remotes) };debug!("Commit_remote, dbs_remotes = {:?}", dbs_remotes);self.txn.del(&mut self.rng,&mut dbs_remotes,UnsafeSmallStr::from_small_str(remote.name.as_small_str()),btree::del(&mut self.txn,&mut self.remotes,&remote.name, - replacement in libpijul/src/pristine/sanakirja.rs at line 1814
debug!("Commit_remote, dbs_remotes = {:?}", dbs_remotes);self.remotes = unsafe { std::mem::transmute(dbs_remotes) };debug!("Commit_remote, dbs_remotes = {:?}", self.remotes); - replacement in libpijul/src/pristine/sanakirja.rs at line 1816
self.txn.put(&mut self.rng,btree::put(&mut self.txn, - replacement in libpijul/src/pristine/sanakirja.rs at line 1819
UnsafeSmallStr::from_small_str(remote.name.as_small_str()),(r.remote, r.rev, r.states),&remote.name,&T3([r.remote.db.into(),r.rev.db.into(),r.states.db.into()]), - replacement in libpijul/src/pristine/sanakirja.rs at line 1837
const CHANGE_ID_SIZE: usize = 8;impl Representable for ChangeId {fn alignment() -> Alignment {Alignment::B8}fn onpage_size(&self) -> u16 {CHANGE_ID_SIZE as u16}unsafe fn write_value(&self, p: *mut u8) {LittleEndian::write_u64(std::slice::from_raw_parts_mut(p, 8), self.0)}unsafe fn read_value(p: *const u8) -> Self {ChangeId(LittleEndian::read_u64(std::slice::from_raw_parts(p, 8)))}unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {self.0.cmp(&x.0)}type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {std::iter::empty()}}direct_repr!(L64); - replacement in libpijul/src/pristine/sanakirja.rs at line 1839
const VERTEX_SIZE: usize = CHANGE_ID_SIZE + 16;direct_repr!(ChangeId); - replacement in libpijul/src/pristine/sanakirja.rs at line 1841
impl Representable for Vertex<ChangeId> {fn alignment() -> Alignment {Alignment::B1}fn onpage_size(&self) -> u16 {VERTEX_SIZE as u16}unsafe fn write_value(&self, p: *mut u8) {let p = std::slice::from_raw_parts_mut(p, VERTEX_SIZE);LittleEndian::write_u64(p, self.change.0);LittleEndian::write_u64(&mut p[CHANGE_ID_SIZE..], self.start.0);LittleEndian::write_u64(&mut p[CHANGE_ID_SIZE + 8..], self.end.0);}unsafe fn read_value(p: *const u8) -> Self {let p = std::slice::from_raw_parts(p, VERTEX_SIZE);let change = LittleEndian::read_u64(p);let start = LittleEndian::read_u64(&p[CHANGE_ID_SIZE..]);let end = LittleEndian::read_u64(&p[CHANGE_ID_SIZE + 8..]);Vertex {change: ChangeId(change),start: ChangePosition(start),end: ChangePosition(end),}}unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {self.cmp(&x)}type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {std::iter::empty()}}direct_repr!(Vertex<ChangeId>);direct_repr!(Position<ChangeId>); - replacement in libpijul/src/pristine/sanakirja.rs at line 1844
impl Representable for Position<ChangeId> {fn alignment() -> Alignment {Alignment::B1}fn onpage_size(&self) -> u16 {(CHANGE_ID_SIZE + 8) as u16}unsafe fn write_value(&self, p: *mut u8) {let p = std::slice::from_raw_parts_mut(p, CHANGE_ID_SIZE + 8);LittleEndian::write_u64(p, self.change.0);LittleEndian::write_u64(&mut p[CHANGE_ID_SIZE..], self.pos.0);}unsafe fn read_value(p: *const u8) -> Self {let p = std::slice::from_raw_parts(p, CHANGE_ID_SIZE + 8);let change = LittleEndian::read_u64(p);let pos = LittleEndian::read_u64(&p[CHANGE_ID_SIZE..]);Position {change: ChangeId(change),pos: ChangePosition(pos),}}unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {self.cmp(&x)direct_repr!(SerializedEdge);impl Storable for PathId {fn compare<T>(&self, _: &T, x: &Self) -> std::cmp::Ordering {self.cmp(x) - replacement in libpijul/src/pristine/sanakirja.rs at line 1850
type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {type PageReferences = std::iter::Empty<u64>;fn page_references(&self) -> Self::PageReferences { - replacement in libpijul/src/pristine/sanakirja.rs at line 1855
impl Representable for Edge {fn alignment() -> Alignment {Alignment::B1}fn onpage_size(&self) -> u16 {25impl UnsizedStorable for PathId {const ALIGN: usize = 8;fn size(&self) -> usize {9 + self.basename.len() - replacement in libpijul/src/pristine/sanakirja.rs at line 1860
unsafe fn write_value(&self, p: *mut u8) {let s = std::slice::from_raw_parts_mut(p, 25);s[0] = (*self).flag.bits();LittleEndian::write_u64(&mut s[1..], (*self).dest.change.0);LittleEndian::write_u64(&mut s[9..], (*self).dest.pos.0);LittleEndian::write_u64(&mut s[17..], (*self).introduced_by.0);unsafe fn onpage_size(p: *const u8) -> usize {let len = *(p.add(8)) as usize;9 + len - replacement in libpijul/src/pristine/sanakirja.rs at line 1864
unsafe fn read_value(p: *const u8) -> Self {let s = std::slice::from_raw_parts(p, 25);Edge {flag: if let Some(b) = EdgeFlags::from_bits(s[0]) {b} else {panic!("read_value, edge = {:?}", s);},dest: Position {change: ChangeId(LittleEndian::read_u64(&s[1..])),pos: ChangePosition(LittleEndian::read_u64(&s[9..])),},introduced_by: ChangeId(LittleEndian::read_u64(&s[17..])),}unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self {path_id_from_raw_ptr(p) - replacement in libpijul/src/pristine/sanakirja.rs at line 1867
unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {let a: &Edge = self;let b: &Edge = &x;a.cmp(b)unsafe fn write_to_page(&self, p: *mut u8) {*(p as *mut u64) = (self.parent_inode.0).0;self.basename.write_to_page(p.add(8)) - edit in libpijul/src/pristine/sanakirja.rs at line 1871
type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {std::iter::empty()} - replacement in libpijul/src/pristine/sanakirja.rs at line 1873
/// An internal "unsafe" version of a [`pristine::PathId`], used to/// circumvent the absence of associated type constructors in Rust/// (else this would be borrow on a table).#[derive(Clone, Copy, Debug)]pub struct UnsafePathId {parent_inode: Inode,basename: UnsafeSmallStr,unsafe fn path_id_from_raw_ptr<'a>(p: *const u8) -> &'a PathId {let len = *(p.add(8)) as usize;std::mem::transmute(std::slice::from_raw_parts(p, 1 + len as usize)) - replacement in libpijul/src/pristine/sanakirja.rs at line 1877
impl UnsafePathId {pub fn from_fileid(f: PathId) -> UnsafePathId {UnsafePathId {parent_inode: f.parent_inode,basename: UnsafeSmallStr::from_small_str(f.basename),}}pub unsafe fn to_fileid<'a>(&self) -> PathId<'a> {PathId {parent_inode: self.parent_inode,basename: self.basename.to_small_str(),}#[test]fn pathid_repr() {let o = OwnedPathId {parent_inode: Inode::ROOT,basename: SmallString::from_str("blablabla")};let mut x = vec![0u8; 200];unsafe {o.write_to_page(x.as_mut_ptr());let p = path_id_from_raw_ptr(x.as_ptr());assert_eq!(p.basename.as_str(), "blablabla");assert_eq!(p.parent_inode, Inode::ROOT); - edit in libpijul/src/pristine/sanakirja.rs at line 1894
impl Representable for UnsafePathId {fn alignment() -> Alignment {Alignment::B1}fn onpage_size(&self) -> u16 {INODE_SIZE + self.basename.onpage_size()}unsafe fn write_value(&self, p: *mut u8) {self.parent_inode.write_value(p);self.basename.write_value(p.offset(INODE_SIZE as isize));}unsafe fn read_value(p: *const u8) -> Self {UnsafePathId {parent_inode: Inode::read_value(p),basename: UnsafeSmallStr::read_value(p.offset(INODE_SIZE as isize)),}}unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {let a: PathId = self.to_fileid();let b: PathId = x.to_fileid();a.cmp(&b)}type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {std::iter::empty()}} - edit in libpijul/src/pristine/sanakirja.rs at line 1895
const INODE_SIZE: u16 = 8;impl Representable for Inode {fn alignment() -> Alignment {Alignment::B8}fn onpage_size(&self) -> u16 {INODE_SIZE}unsafe fn write_value(&self, p: *mut u8) {LittleEndian::write_u64(std::slice::from_raw_parts_mut(p, 8), self.0)}unsafe fn read_value(p: *const u8) -> Self {Inode(LittleEndian::read_u64(std::slice::from_raw_parts(p, 8)))}unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {self.0.cmp(&x.0)}type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {std::iter::empty()}} - replacement in libpijul/src/pristine/sanakirja.rs at line 1896
impl Representable for Hash {fn alignment() -> Alignment {Alignment::B1}direct_repr!(Inode);direct_repr!(SerializedMerkle);direct_repr!(SerializedHash); - replacement in libpijul/src/pristine/sanakirja.rs at line 1900
fn onpage_size(&self) -> u16 {1 + (match *self {Hash::Blake3(_) => 32,Hash::None => 0,})}unsafe fn write_value(&self, p: *mut u8) {match *self {Hash::Blake3(q) => {*p = HashAlgorithm::Blake3 as u8;std::ptr::copy(q.as_ptr(), p.offset(1), 32)}Hash::None => *p = HashAlgorithm::None as u8,}impl<A: Storable, B: Storable> Storable for Pair<A, B> {type PageReferences = core::iter::Chain<A::PageReferences, B::PageReferences>;fn page_references(&self) -> Self::PageReferences {self.a.page_references().chain(self.b.page_references()) - replacement in libpijul/src/pristine/sanakirja.rs at line 1905
unsafe fn read_value(p: *const u8) -> Self {assert!(*p <= HashAlgorithm::Blake3 as u8);match std::mem::transmute(*p) {HashAlgorithm::Blake3 => {let mut h = [0; BLAKE3_BYTES];std::ptr::copy(p.offset(1), h.as_mut_ptr(), BLAKE3_BYTES);Hash::Blake3(h)}HashAlgorithm::None => Hash::None,fn compare<T: LoadPage>(&self, t: &T, b: &Self) -> core::cmp::Ordering {match self.a.compare(t, &b.a) {core::cmp::Ordering::Equal => self.b.compare(t, &b.b),ord => ord - edit in libpijul/src/pristine/sanakirja.rs at line 1910
}unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {self.cmp(&x)}type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {std::iter::empty() - replacement in libpijul/src/pristine/sanakirja.rs at line 1913
impl Representable for Merkle {fn alignment() -> Alignment {Alignment::B1}impl<A: Ord + UnsizedStorable, B: Ord + UnsizedStorable> UnsizedStorable for Pair<A, B> {const ALIGN: usize = std::mem::align_of::<(A, B)>(); - replacement in libpijul/src/pristine/sanakirja.rs at line 1916
fn onpage_size(&self) -> u16 {33fn size(&self) -> usize {let a = self.a.size();let b_off = (a + (B::ALIGN - 1)) & !(B::ALIGN - 1);(b_off + self.b.size() + (Self::ALIGN - 1)) & !(Self::ALIGN - 1) - replacement in libpijul/src/pristine/sanakirja.rs at line 1921
unsafe fn write_value(&self, p: *mut u8) {match *self {Merkle::Ed25519(q) => {*p = MerkleAlgorithm::Ed25519 as u8;assert_eq!(*p, 1);let q = q.compress();let q = q.as_bytes();std::ptr::copy(q.as_ptr(), p.offset(1), 32);}}}unsafe fn read_value(p: *const u8) -> Self {assert_eq!(*p, MerkleAlgorithm::Ed25519 as u8);let slice = std::slice::from_raw_parts(p.offset(1), 32);Merkle::Ed25519(curve25519_dalek::edwards::CompressedEdwardsY::from_slice(slice).decompress().unwrap(),)unsafe fn onpage_size(p: *const u8) -> usize {let a = A::onpage_size(p);let b_off = (a + (B::ALIGN - 1)) & !(B::ALIGN - 1);let b_size = B::onpage_size(p.add(b_off));(b_off + b_size + (Self::ALIGN - 1)) & !(Self::ALIGN - 1) - replacement in libpijul/src/pristine/sanakirja.rs at line 1927
unsafe fn cmp_value<T>(&self, _: &T, x: Self) -> std::cmp::Ordering {self.to_bytes().cmp(&x.to_bytes())unsafe fn from_raw_ptr<'a, T>(_: &T, p: *const u8) -> &'a Self {&*(p as *const Self) - replacement in libpijul/src/pristine/sanakirja.rs at line 1930
type PageOffsets = std::iter::Empty<u64>;fn page_offsets(&self) -> Self::PageOffsets {std::iter::empty()unsafe fn write_to_page(&self, p: *mut u8) {self.a.write_to_page(p);let off = (self.a.size() + (B::ALIGN - 1)) & !(B::ALIGN - 1);self.b.write_to_page(p.add(off)); - edit in libpijul/src/pristine/sanakirja.rs at line 1936[18.584953]
direct_repr!(T3);direct_repr!(T6); - replacement in libpijul/src/pristine/path_id.rs at line 16
pub fn as_file_id(&self) -> PathId {PathId {parent_inode: self.parent_inode,basename: self.basename.as_small_str(),pub fn inode(parent_inode: Inode) -> Self {OwnedPathId {parent_inode,basename: SmallString::new(), - replacement in libpijul/src/pristine/path_id.rs at line 25
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Clone, Copy)]#[derive(Debug, Eq, PartialEq, Ord, PartialOrd)] - replacement in libpijul/src/pristine/path_id.rs at line 27
pub struct PathId<'a> {pub struct PathId { - replacement in libpijul/src/pristine/path_id.rs at line 29
pub basename: SmallStr<'a>,pub basename: SmallStr, - replacement in libpijul/src/pristine/path_id.rs at line 32
impl<'a> PathId<'a> {impl PathId { - edit in libpijul/src/pristine/path_id.rs at line 38
}}}impl std::ops::Deref for OwnedPathId {type Target = PathId;fn deref(&self) -> &Self::Target {let len = 1 + self.basename.len as usize;unsafe {std::mem::transmute(std::slice::from_raw_parts(self as *const Self as *const u8, len)) - edit in libpijul/src/pristine/path_id.rs at line 50
}#[test]fn pathid() {let o = OwnedPathId {parent_inode: Inode::ROOT,basename: SmallString::from_str("blablabla")};use std::ops::Deref;println!("{:?} {:?}", o.basename.len, o.deref()); - replacement in libpijul/src/pristine/mod.rs at line 24
#[cfg(feature = "dump")]pub mod channel_dump;// #[cfg(feature = "dump")]// pub mod channel_dump;#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]pub struct L64(pub u64);impl From<usize> for L64 {fn from(u: usize) -> Self {L64((u as u64).to_le())}}impl From<u64> for L64 {fn from(u: u64) -> Self {L64(u.to_le())}}impl From<L64> for u64 {fn from(u: L64) -> Self {u64::from_le(u.0)}}impl From<L64> for usize {fn from(u: L64) -> Self {u64::from_le(u.0) as usize}}impl L64 {pub fn as_u64(&self) -> u64 {u64::from_le(self.0)}pub fn as_usize(&self) -> usize {u64::from_le(self.0) as usize}}impl std::fmt::Display for L64 {fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result {self.0.fmt(fmt)}}impl Ord for L64 {fn cmp(&self, x: &Self) -> std::cmp::Ordering {u64::from_le(self.0).cmp(&u64::from_le(x.0))}}impl PartialOrd for L64 {fn partial_cmp(&self, x: &Self) -> Option<std::cmp::Ordering> {Some(u64::from_le(self.0).cmp(&u64::from_le(x.0)))}}impl std::ops::Add<L64> for L64 {type Output = Self;fn add(self, x: L64) -> L64 {L64((u64::from_le(self.0) + u64::from_le(x.0)).to_le())}}impl std::ops::Add<usize> for L64 {type Output = Self;fn add(self, x: usize) -> L64 {L64((u64::from_le(self.0) + x as u64).to_le())}}impl std::ops::SubAssign<usize> for L64 {fn sub_assign(&mut self, x: usize) {self.0 = ((u64::from_le(self.0)) - x as u64).to_le()}}impl L64 {pub fn from_slice_le(s: &[u8]) -> Self {let mut u = 0u64;assert!(s.len() >= 8);unsafe {std::ptr::copy_nonoverlapping(s.as_ptr(), &mut u as *mut u64 as *mut u8, 8)}L64(u)}pub fn to_slice_le(&self, s: &mut [u8]) {assert!(s.len() >= 8);unsafe {std::ptr::copy_nonoverlapping(&self.0 as *const u64 as *const u8, s.as_mut_ptr(), 8)}}}#[derive(Debug, Clone, Copy, PartialOrd, Ord, PartialEq, Eq)]#[repr(C)]pub struct T3([L64; 3]);#[derive(Debug, Clone, Copy, PartialOrd, Ord, PartialEq, Eq)]#[repr(C)]pub struct T6([L64; 6]);#[derive(Debug, Clone, Copy, PartialOrd, Ord, PartialEq, Eq)]#[repr(C)]pub struct Pair<A, B> {pub a: A,pub b: B,} - edit in libpijul/src/pristine/mod.rs at line 135
- replacement in libpijul/src/pristine/mod.rs at line 226
get!(graph, Vertex<ChangeId>, Edge, GraphError);get!(graph, Vertex<ChangeId>, SerializedEdge, GraphError); - replacement in libpijul/src/pristine/mod.rs at line 229
fn get_external(&self, p: ChangeId) -> Result<Option<Hash>, TxnErr<Self::GraphError>>;fn get_external(&self, p: &ChangeId) -> Result<Option<&SerializedHash>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 233
fn get_internal(&self, p: Hash) -> Result<Option<ChangeId>, TxnErr<Self::GraphError>>;fn get_internal(&self, p: &SerializedHash) -> Result<Option<&ChangeId>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 244
fn next_adj(&self,fn next_adj<'a>(&'a self, - replacement in libpijul/src/pristine/mod.rs at line 248
) -> Option<Result<Edge, TxnErr<Self::GraphError>>>;) -> Option<Result<&'a SerializedEdge, TxnErr<Self::GraphError>>>; - replacement in libpijul/src/pristine/mod.rs at line 250
fn find_block(&self,fn find_block<'a>(&'a self, - replacement in libpijul/src/pristine/mod.rs at line 254
) -> Result<Vertex<ChangeId>, BlockError<Self::GraphError>>;) -> Result<&'a Vertex<ChangeId>, BlockError<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 256
fn find_block_end(&self,fn find_block_end<'a>(&'a self, - replacement in libpijul/src/pristine/mod.rs at line 260
) -> Result<Vertex<ChangeId>, BlockError<Self::GraphError>>;) -> Result<&'a Vertex<ChangeId>, BlockError<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 279
c: ChangeId,) -> Result<Option<u64>, TxnErr<Self::GraphError>>;c: &ChangeId,) -> Result<Option<&L64>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 284
c: u64,) -> Result<Option<(ChangeId, Merkle)>, TxnErr<Self::GraphError>>;c: &L64,) -> Result<Option<&Pair<ChangeId, SerializedMerkle>>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 293
crate::pristine::Cursor<Self, &'txn Self, Self::ChangesetCursor, ChangeId, u64>,crate::pristine::Cursor<Self, &'txn Self, Self::ChangesetCursor, ChangeId, L64>, - replacement in libpijul/src/pristine/mod.rs at line 299
) -> Result<Option<(ChangeId, u64)>, TxnErr<Self::GraphError>>;) -> Result<Option<(&ChangeId, &L64)>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 304
) -> Result<Option<(ChangeId, u64)>, TxnErr<Self::GraphError>>;) -> Result<Option<(&ChangeId, &L64)>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 310
pos: Option<u64>,pos: Option<L64>, - replacement in libpijul/src/pristine/mod.rs at line 312
Cursor<Self, RT, Self::RevchangesetCursor, u64, (ChangeId, Merkle)>,Cursor<Self, RT, Self::RevchangesetCursor, L64, Pair<ChangeId, SerializedMerkle>>, - replacement in libpijul/src/pristine/mod.rs at line 318
pos: Option<u64>,pos: Option<L64>, - replacement in libpijul/src/pristine/mod.rs at line 320
RevCursor<Self, &'txn Self, Self::RevchangesetCursor, u64, (ChangeId, Merkle)>,RevCursor<Self, &'txn Self, Self::RevchangesetCursor, L64, Pair<ChangeId, SerializedMerkle>>, - replacement in libpijul/src/pristine/mod.rs at line 326
) -> Result<Option<(u64, (ChangeId, Merkle))>, TxnErr<Self::GraphError>>;) -> Result<Option<(&L64, &Pair<ChangeId, SerializedMerkle>)>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 331
) -> Result<Option<(u64, (ChangeId, Merkle))>, TxnErr<Self::GraphError>>;) -> Result<Option<(&L64, &Pair<ChangeId, SerializedMerkle>)>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 337
hash: Merkle,) -> Result<Option<u64>, TxnErr<Self::GraphError>>;hash: &SerializedMerkle,) -> Result<Option<L64>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 344
fn next_graph(&self,fn next_graph<'txn>(&'txn self, - replacement in libpijul/src/pristine/mod.rs at line 348
) -> Option<Result<(Vertex<ChangeId>, Edge), TxnErr<Self::GraphError>>>;) -> Option<Result<(&'txn Vertex<ChangeId>, &'txn SerializedEdge), TxnErr<Self::GraphError>>>; - replacement in libpijul/src/pristine/mod.rs at line 374
p: ChangeId,p: &ChangeId, - replacement in libpijul/src/pristine/mod.rs at line 378
p: ChangeId,p: &ChangeId, - replacement in libpijul/src/pristine/mod.rs at line 382
p: ChangeId,p: &ChangeId, - replacement in libpijul/src/pristine/mod.rs at line 386
p: Position<ChangeId>,p: &Position<ChangeId>, - replacement in libpijul/src/pristine/mod.rs at line 393
p: ChangeId,p: &ChangeId, - replacement in libpijul/src/pristine/mod.rs at line 410
iter!(tree, OwnedPathId, Inode, TreeError);iter!(tree, PathId, Inode, TreeError); - replacement in libpijul/src/pristine/mod.rs at line 414
iter!(revtree, Inode, OwnedPathId, TreeError);iter!(revtree, Inode, PathId, TreeError); - replacement in libpijul/src/pristine/mod.rs at line 422
cursor!(partials, SmallString, Position<ChangeId>, TreeError);cursor!(partials, SmallStr, Position<ChangeId>, TreeError); - replacement in libpijul/src/pristine/mod.rs at line 444
Cursor<Self, &'txn Self, Self::PartialsCursor, SmallString, Position<ChangeId>>,Cursor<Self, &'txn Self, Self::PartialsCursor, SmallStr, Position<ChangeId>>, - replacement in libpijul/src/pristine/mod.rs at line 457
cursor!(channels, SmallString, (u64, u64, u64, u64, u64, u64));cursor!(channels, SmallStr, T6); - replacement in libpijul/src/pristine/mod.rs at line 489
cursor!(remotes, SmallString, (u64, u64, u64));cursor!(remotes, SmallStr, T3); - replacement in libpijul/src/pristine/mod.rs at line 493
cursor!(remote, u64, (Hash, Merkle));rev_cursor!(remote, u64, (Hash, Merkle));cursor!(remote, L64, Pair<SerializedHash, SerializedMerkle>);rev_cursor!(remote, L64, Pair<SerializedHash, SerializedMerkle>); - replacement in libpijul/src/pristine/mod.rs at line 501
Cursor<Self, &'txn Self, Self::RemoteCursor, u64, (Hash, Merkle)>,Cursor<Self, &'txn Self, Self::RemoteCursor, L64, Pair<SerializedHash, SerializedMerkle>>, - replacement in libpijul/src/pristine/mod.rs at line 508
k: Option<u64>,k: Option<L64>, - replacement in libpijul/src/pristine/mod.rs at line 510
RevCursor<Self, &'txn Self, Self::RemoteCursor, u64, (Hash, Merkle)>,RevCursor<Self, &'txn Self, Self::RemoteCursor, L64, Pair<SerializedHash, SerializedMerkle>>, - replacement in libpijul/src/pristine/mod.rs at line 522
) -> Result<Option<(u64, (Hash, Merkle))>, TxnErr<Self::GraphError>>;) -> Result<Option<(u64, &Pair<SerializedHash, SerializedMerkle>)>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 528
) -> Result<Option<(u64, (Hash, Merkle))>, TxnErr<Self::GraphError>>;) -> Result<Option<(u64, &Pair<SerializedHash, SerializedMerkle>)>, TxnErr<Self::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 533
hash: Hash,hash: &SerializedHash, - replacement in libpijul/src/pristine/mod.rs at line 538
hash: Merkle,hash: &SerializedMerkle, - replacement in libpijul/src/pristine/mod.rs at line 596
v: Position<ChangeId>,v: &Position<ChangeId>, - replacement in libpijul/src/pristine/mod.rs at line 603
inode = next.parent_inode;inode = &next.parent_inode; - replacement in libpijul/src/pristine/mod.rs at line 626
Some(h) => txn.get_internal(h),Some(ref h) => Ok(txn.get_internal(&h.into())?.map(|x| *x)), - replacement in libpijul/src/pristine/mod.rs at line 651
if let Some(p) = txn.get_internal(p)? {if let Some(&p) = txn.get_internal(&p.into())? { - replacement in libpijul/src/pristine/mod.rs at line 669
from: u64,) -> Result<Cursor<T, &'txn T, T::RevchangesetCursor, u64, (ChangeId, Merkle)>, TxnErr<T::GraphError>>from: L64,) -> Result<Cursor<T, &'txn T, T::RevchangesetCursor, L64, Pair<ChangeId, SerializedMerkle>>, TxnErr<T::GraphError>> - replacement in libpijul/src/pristine/mod.rs at line 683
let (_, (_, m)) = e?;Ok(m)Ok((&(e?.1).b).into()) - edit in libpijul/src/pristine/mod.rs at line 687[18.247]→[18.40357:40360](∅→∅),[18.62835]→[18.40357:40360](∅→∅),[18.40357]→[18.40357:40360](∅→∅),[18.40360]→[18.62836:62917](∅→∅),[18.62917]→[18.40434:40447](∅→∅),[18.40434]→[18.40434:40447](∅→∅),[18.40447]→[18.53153:53179](∅→∅),[18.53179]→[18.40473:40488](∅→∅),[18.40473]→[18.40473:40488](∅→∅),[18.40488]→[18.62918:63018](∅→∅),[18.63018]→[18.3022:3061](∅→∅),[18.3061]→[18.510:566](∅→∅)
}pub(crate) fn changeid_log_ref<T: ChannelTxnT, RT: std::ops::Deref<Target = T>>(txn: RT,channel: &T::Channel,from: u64,) -> Result<Cursor<T, RT, T::RevchangesetCursor, u64, (ChangeId, Merkle)>, TxnErr<T::GraphError>> {let c = txn.rev_changes(&channel);Ok(T::cursor_revchangeset_ref(txn, c, Some(from))?) - replacement in libpijul/src/pristine/mod.rs at line 692
from: Option<u64>,from: Option<L64>, - replacement in libpijul/src/pristine/mod.rs at line 694
RevCursor<T, &'txn T, T::RevchangesetCursor, u64, (ChangeId, Merkle)>,RevCursor<T, &'txn T, T::RevchangesetCursor, L64, Pair<ChangeId, SerializedMerkle>>, - replacement in libpijul/src/pristine/mod.rs at line 711
iter: T::cursor_revchangeset_ref(txn, txn.rev_changes(&channel), Some(from_timestamp))?,iter: T::cursor_revchangeset_ref(txn, txn.rev_changes(&channel), Some(from_timestamp.into()))?, - replacement in libpijul/src/pristine/mod.rs at line 729
iter: txn.rev_cursor_revchangeset(txn.rev_changes(&channel), Some(from_timestamp))?,iter: txn.rev_cursor_revchangeset(txn.rev_changes(&channel), Some(from_timestamp.into()))?, - replacement in libpijul/src/pristine/mod.rs at line 748
Some(Ok(dest)) => Ok(dest.dest == b),Some(Ok(dest)) => Ok(dest.dest() == b), - replacement in libpijul/src/pristine/mod.rs at line 758
a: Vertex<ChangeId>,a: &Vertex<ChangeId>, - replacement in libpijul/src/pristine/mod.rs at line 766
a,*a, - replacement in libpijul/src/pristine/mod.rs at line 771
if !e.flag.contains(EdgeFlags::PSEUDO)&& (e.flag.contains(EdgeFlags::BLOCK) || a.is_empty())if !e.flag().contains(EdgeFlags::PSEUDO)&& (e.flag().contains(EdgeFlags::BLOCK) || a.is_empty()) - replacement in libpijul/src/pristine/mod.rs at line 784
if let Some(h) = txn.get_internal(*h)? {return Ok(h);if let Some(h_) = txn.get_internal(&h.into())? {debug!("make_changeid, found = {:?} {:?}", h, h_);return Ok(*h_); - replacement in libpijul/src/pristine/mod.rs at line 792
Hash::Blake3(ref s) => ChangeId(LittleEndian::read_u64(&s[..])),Hash::Blake3(ref s) => ChangeId(L64(LittleEndian::read_u64(&s[..]))), - replacement in libpijul/src/pristine/mod.rs at line 794
while txn.get_external(p)?.is_some() {p = ChangeId(rand::thread_rng().gen());while let Some(ext) = txn.get_external(&p)? {debug!("ext = {:?}", ext);p = ChangeId(L64(rand::thread_rng().gen())); - replacement in libpijul/src/pristine/mod.rs at line 811
for t in txn.iter_tree(root, None).unwrap() {for t in txn.iter_tree(&root, None).unwrap() { - replacement in libpijul/src/pristine/mod.rs at line 823
for t in txn.iter_tree(root, None).unwrap() {for t in txn.iter_tree(&root, None).unwrap() { - replacement in libpijul/src/pristine/mod.rs at line 850
for t in txn.iter_revtree(Inode::ROOT, None).unwrap() {for t in txn.iter_revtree(&Inode::ROOT, None).unwrap() { - replacement in libpijul/src/pristine/mod.rs at line 858
for t in txn.iter_revtree(Inode::ROOT, None).unwrap() {for t in txn.iter_revtree(&Inode::ROOT, None).unwrap() { - replacement in libpijul/src/pristine/mod.rs at line 898
debug_vertex(&mut f, k)?debug_vertex(&mut f, *k)? - replacement in libpijul/src/pristine/mod.rs at line 900
debug_edge(txn, channel, &mut f, k, v)?debug_edge(txn, channel, &mut f, *k, *v)? - replacement in libpijul/src/pristine/mod.rs at line 930
stack.push(txn.find_block(&channel, e.dest).unwrap());stack.push(*txn.find_block(&channel, e.dest()).unwrap()); - replacement in libpijul/src/pristine/mod.rs at line 945
let (k, v) = x.unwrap();let (&k, &v) = x.unwrap(); - replacement in libpijul/src/pristine/mod.rs at line 958
if v.flag.contains(EdgeFlags::PARENT)&& !v.flag.contains(EdgeFlags::FOLDER)&& !v.flag.contains(EdgeFlags::DELETED)if v.flag().contains(EdgeFlags::PARENT)&& !v.flag().contains(EdgeFlags::FOLDER)&& !v.flag().contains(EdgeFlags::DELETED) - replacement in libpijul/src/pristine/mod.rs at line 962
if v.flag.contains(EdgeFlags::PSEUDO) {if v.flag().contains(EdgeFlags::PSEUDO) { - replacement in libpijul/src/pristine/mod.rs at line 969[18.615054]→[18.4471:4517](∅→∅),[18.4517]→[18.420:487](∅→∅),[18.487]→[18.4517:4569](∅→∅),[18.4517]→[18.4517:4569](∅→∅)
if v.flag.contains(EdgeFlags::PARENT)&& (v.flag.contains(EdgeFlags::BLOCK) || k.is_empty())&& !v.flag.contains(EdgeFlags::DELETED)if v.flag().contains(EdgeFlags::PARENT)&& (v.flag().contains(EdgeFlags::BLOCK) || k.is_empty())&& !v.flag().contains(EdgeFlags::DELETED) - replacement in libpijul/src/pristine/mod.rs at line 1005
if e.flag.contains(EdgeFlags::PARENT) {if e.flag.contains(EdgeFlags::FOLDER) {if e.flag().contains(EdgeFlags::PARENT) {if e.flag().contains(EdgeFlags::FOLDER) { - replacement in libpijul/src/pristine/mod.rs at line 1010
stack.push(txn.find_block_end(&channel, e.dest).unwrap());stack.push(*txn.find_block_end(&channel, e.dest()).unwrap()); - replacement in libpijul/src/pristine/mod.rs at line 1034[18.7741]→[18.507:566](∅→∅),[18.67436]→[18.507:566](∅→∅),[18.49532]→[18.507:566](∅→∅),[18.566]→[18.49584:49642](∅→∅),[18.49584]→[18.49584:49642](∅→∅),[18.49642]→[18.567:631](∅→∅),[18.631]→[18.54472:54538](∅→∅)
if e.flag.contains(EdgeFlags::PARENT) ^ down {debug_edge(txn, &channel, &mut f, v, e)?;let v = if e.flag.contains(EdgeFlags::PARENT) {txn.find_block_end(&channel, e.dest).unwrap()if e.flag().contains(EdgeFlags::PARENT) ^ down {debug_edge(txn, &channel, &mut f, v, *e)?;let v = if e.flag().contains(EdgeFlags::PARENT) {txn.find_block_end(&channel, e.dest()).unwrap() - replacement in libpijul/src/pristine/mod.rs at line 1039
txn.find_block(&channel, e.dest).unwrap()txn.find_block(&channel, e.dest()).unwrap() - replacement in libpijul/src/pristine/mod.rs at line 1041
stack.push(v);stack.push(*v); - replacement in libpijul/src/pristine/mod.rs at line 1067
v: Edge,v: SerializedEdge, - replacement in libpijul/src/pristine/mod.rs at line 1069
let style = if v.flag.contains(EdgeFlags::DELETED) {let style = if v.flag().contains(EdgeFlags::DELETED) { - replacement in libpijul/src/pristine/mod.rs at line 1071
} else if v.flag.contains(EdgeFlags::PSEUDO) {} else if v.flag().contains(EdgeFlags::PSEUDO) { - replacement in libpijul/src/pristine/mod.rs at line 1076
let color = if v.flag.contains(EdgeFlags::PARENT) {if v.flag.contains(EdgeFlags::FOLDER) {let color = if v.flag().contains(EdgeFlags::PARENT) {if v.flag().contains(EdgeFlags::FOLDER) { - replacement in libpijul/src/pristine/mod.rs at line 1082
} else if v.flag.contains(EdgeFlags::FOLDER) {} else if v.flag().contains(EdgeFlags::FOLDER) { - replacement in libpijul/src/pristine/mod.rs at line 1088
if v.flag.contains(EdgeFlags::PARENT) {let dest = if v.dest.change.is_root() {if v.flag().contains(EdgeFlags::PARENT) {let dest = if v.dest().change.is_root() { - replacement in libpijul/src/pristine/mod.rs at line 1091
} else if let Ok(dest) = txn.find_block_end(channel, v.dest) {} else if let Ok(&dest) = txn.find_block_end(channel, v.dest()) { - replacement in libpijul/src/pristine/mod.rs at line 1105
if v.flag.contains(EdgeFlags::BLOCK) {if v.flag().contains(EdgeFlags::BLOCK) { - replacement in libpijul/src/pristine/mod.rs at line 1110
v.introduced_by.to_base32(),if v.flag.contains(EdgeFlags::BLOCK) {v.introduced_by().to_base32(),if v.flag().contains(EdgeFlags::BLOCK) { - replacement in libpijul/src/pristine/mod.rs at line 1119
} else if let Ok(dest) = txn.find_block(&channel, v.dest) {} else if let Ok(dest) = txn.find_block(&channel, v.dest()) { - replacement in libpijul/src/pristine/mod.rs at line 1129
if v.flag.contains(EdgeFlags::BLOCK) {if v.flag().contains(EdgeFlags::BLOCK) { - replacement in libpijul/src/pristine/mod.rs at line 1134
v.introduced_by.to_base32(),if v.flag.contains(EdgeFlags::BLOCK) {v.introduced_by().to_base32(),if v.flag().contains(EdgeFlags::BLOCK) { - replacement in libpijul/src/pristine/mod.rs at line 1150
v.dest.change.to_base32(),v.dest.pos.0,if v.flag.contains(EdgeFlags::BLOCK) {v.dest().change.to_base32(),v.dest().pos.0,if v.flag().contains(EdgeFlags::BLOCK) { - replacement in libpijul/src/pristine/mod.rs at line 1157
v.introduced_by.to_base32(),if v.flag.contains(EdgeFlags::BLOCK) {v.introduced_by().to_base32(),if v.flag().contains(EdgeFlags::BLOCK) { - replacement in libpijul/src/pristine/mod.rs at line 1171
pub struct Cursor<T: Sized, RT: std::ops::Deref<Target = T>, Cursor, K, V> {pub struct Cursor<T: Sized, RT: std::ops::Deref<Target = T>, Cursor, K:?Sized, V:?Sized> { - replacement in libpijul/src/pristine/mod.rs at line 1174
pub marker: std::marker::PhantomData<(T, K, V)>,pub t: std::marker::PhantomData<T>,pub k: std::marker::PhantomData<K>,pub v: std::marker::PhantomData<V>, - replacement in libpijul/src/pristine/mod.rs at line 1179
pub struct RevCursor<T: Sized, RT: std::ops::Deref<Target = T>, Cursor, K, V> {pub struct RevCursor<T: Sized, RT: std::ops::Deref<Target = T>, Cursor, K:?Sized, V:?Sized> { - replacement in libpijul/src/pristine/mod.rs at line 1182
pub marker: std::marker::PhantomData<(T, K, V)>,pub t: std::marker::PhantomData<T>,pub k: std::marker::PhantomData<K>,pub v: std::marker::PhantomData<V>, - replacement in libpijul/src/pristine/mod.rs at line 1187
initialized_cursor!(changeset, ChangeId, u64, ChannelTxnT, GraphError);initialized_cursor!(changeset, ChangeId, L64, ChannelTxnT, GraphError); - replacement in libpijul/src/pristine/mod.rs at line 1190
u64,(ChangeId, Merkle),L64,Pair<ChangeId, SerializedMerkle>, - replacement in libpijul/src/pristine/mod.rs at line 1197
u64,(ChangeId, Merkle),L64,Pair<ChangeId, SerializedMerkle>, - replacement in libpijul/src/pristine/mod.rs at line 1202
initialized_cursor!(tree, OwnedPathId, Inode, TreeTxnT, TreeError);initialized_cursor!(revtree, Inode, OwnedPathId, TreeTxnT, TreeError);initialized_cursor!(tree, PathId, Inode, TreeTxnT, TreeError);initialized_cursor!(revtree, Inode, PathId, TreeTxnT, TreeError); - replacement in libpijul/src/pristine/mod.rs at line 1207
SmallString,SmallStr, - replacement in libpijul/src/pristine/mod.rs at line 1226
initialized_cursor!(remote, u64, (Hash, Merkle));initialized_rev_cursor!(remote, u64, (Hash, Merkle));initialized_cursor!(remote, L64, Pair<SerializedHash, SerializedMerkle>);initialized_rev_cursor!(remote, L64, Pair<SerializedHash, SerializedMerkle>); - replacement in libpijul/src/pristine/mod.rs at line 1240
type Item = Result<Edge, TxnErr<T::GraphError>>;type Item = Result<&'txn SerializedEdge, TxnErr<T::GraphError>>; - replacement in libpijul/src/pristine/mod.rs at line 1249
iter: Cursor<T, &'txn T, T::RevchangesetCursor, u64, (ChangeId, Merkle)>,iter: Cursor<T, &'txn T, T::RevchangesetCursor, L64, Pair<ChangeId, SerializedMerkle>>, - replacement in libpijul/src/pristine/mod.rs at line 1256
iter: RevCursor<T, &'txn T, T::RevchangesetCursor, u64, (ChangeId, Merkle)>,iter: RevCursor<T, &'txn T, T::RevchangesetCursor, L64, Pair<ChangeId, SerializedMerkle>>, - replacement in libpijul/src/pristine/mod.rs at line 1269
let (_, (changeid, _)) = match x {Ok(x) => x,let changeid = match x {Ok(x) => (x.1).a, - replacement in libpijul/src/pristine/mod.rs at line 1273
let iter = match self.txn.iter_rev_touched_files(changeid, None) {let iter = match self.txn.iter_rev_touched_files(&changeid, None) { - replacement in libpijul/src/pristine/mod.rs at line 1282
if p > changeid {if *p > changeid { - replacement in libpijul/src/pristine/mod.rs at line 1284
} else if p < changeid {} else if *p < changeid { - replacement in libpijul/src/pristine/mod.rs at line 1287[18.623603]→[18.3394:3493](∅→∅),[18.3493]→[18.70612:70696](∅→∅),[18.55254]→[18.70612:70696](∅→∅),[18.70612]→[18.70612:70696](∅→∅)
match is_ancestor_of(self.txn, self.txn.graph(&self.channel), self.key, touched) {Ok(true) => return self.txn.get_external(changeid).transpose(),match is_ancestor_of(self.txn, self.txn.graph(&self.channel), self.key, *touched) {Ok(true) => return self.txn.get_external(&changeid).transpose().map(|x| x.map(|x| x.into())), - replacement in libpijul/src/pristine/mod.rs at line 1309
Ok((_, (changeid, _))) => changeid,Ok((_, p)) => p.a, - replacement in libpijul/src/pristine/mod.rs at line 1311
let iter = match self.txn.iter_rev_touched_files(changeid, None) {let iter = match self.txn.iter_rev_touched_files(&changeid, None) { - replacement in libpijul/src/pristine/mod.rs at line 1320
if p > changeid {if *p > changeid { - replacement in libpijul/src/pristine/mod.rs at line 1322
} else if p < changeid {} else if *p < changeid { - replacement in libpijul/src/pristine/mod.rs at line 1325[18.624262]→[18.3494:3593](∅→∅),[18.3593]→[18.71642:71726](∅→∅),[18.55348]→[18.71642:71726](∅→∅),[18.71642]→[18.71642:71726](∅→∅)
match is_ancestor_of(self.txn, self.txn.graph(&self.channel), self.key, touched) {Ok(true) => return self.txn.get_external(changeid).transpose(),match is_ancestor_of(self.txn, self.txn.graph(&self.channel), self.key, *touched) {Ok(true) => return self.txn.get_external(&changeid).transpose().map(|x| x.map(From::from)), - replacement in libpijul/src/pristine/mod.rs at line 1361
let parent = txn.find_block_end(channel, p.dest).unwrap();let parent = txn.find_block_end(channel, p.dest()).unwrap(); - replacement in libpijul/src/pristine/mod.rs at line 1365
parent,*parent, - replacement in libpijul/src/pristine/mod.rs at line 1370
if pp.dest == a {if pp.dest() == a { - replacement in libpijul/src/pristine/mod.rs at line 1373
stack.push(pp.dest)stack.push(pp.dest()) - replacement in libpijul/src/pristine/mod.rs at line 1414
put_del!(internal, Hash, ChangeId, GraphError);put_del!(external, ChangeId, Hash, GraphError);put_del!(internal, SerializedHash, ChangeId, GraphError);put_del!(external, ChangeId, SerializedHash, GraphError); - replacement in libpijul/src/pristine/mod.rs at line 1421
k: Vertex<ChangeId>,v: Edge,k: &Vertex<ChangeId>,v: &SerializedEdge, - replacement in libpijul/src/pristine/mod.rs at line 1429
k: Vertex<ChangeId>,v: Option<Edge>,k: &Vertex<ChangeId>,v: Option<&SerializedEdge>, - replacement in libpijul/src/pristine/mod.rs at line 1438
key: Vertex<ChangeId>,key: &Vertex<ChangeId>, - replacement in libpijul/src/pristine/mod.rs at line 1440
buf: &mut Vec<Edge>,buf: &mut Vec<SerializedEdge>, - replacement in libpijul/src/pristine/mod.rs at line 1550
inode: Inode,position: Position<ChangeId>,inode: &Inode,position: &Position<ChangeId>, - replacement in libpijul/src/pristine/mod.rs at line 1560
inode: Inode,position: Position<ChangeId>,inode: &Inode,position: &Position<ChangeId>, - replacement in libpijul/src/pristine/mod.rs at line 1573
file_id: PathId,inode: Inode,file_id: &PathId,inode: &Inode, - replacement in libpijul/src/pristine/mod.rs at line 1583
file_id: PathId,inode: Inode,file_id: &PathId,inode: &Inode, - replacement in libpijul/src/pristine/mod.rs at line 1611[18.75959]→[18.52626:52658](∅→∅),[18.52626]→[18.52626:52658](∅→∅),[18.52658]→[18.357:375](∅→∅),[18.375]→[18.52682:52831](∅→∅),[18.52682]→[18.52682:52831](∅→∅)
k0,Some(Edge {flag,dest: Position {change: k1.change,pos: k1.start,},introduced_by,}),&k0,Some(&SerializedEdge::new(flag, k1.change, k1.start, introduced_by)), - replacement in libpijul/src/pristine/mod.rs at line 1616
k1,Some(Edge {flag: flag | EdgeFlags::PARENT,dest: Position {change: k0.change,pos: k0.end,},introduced_by,}),&k1,Some(&SerializedEdge::new(flag | EdgeFlags::PARENT, k0.change, k0.end, introduced_by)), - replacement in libpijul/src/pristine/mod.rs at line 1619
assert!((a && b) || (!a && !b));if (a && !b) || (!a && b) {panic!("Failed: {:?} {:?} for {:?} {:?} {:?} {:?}", a, b, flag, k0, k1, introduced_by)} - replacement in libpijul/src/pristine/mod.rs at line 1643[18.76114]→[18.53770:53797](∅→∅),[18.53770]→[18.53770:53797](∅→∅),[18.53797]→[18.376:394](∅→∅),[18.394]→[18.53821:53969](∅→∅),[18.53821]→[18.53821:53969](∅→∅)
k0,Edge {flag,dest: Position {change: k1.change,pos: k1.start,},introduced_by,},&k0,&SerializedEdge::new(flag, k1.change, k1.start, introduced_by) - replacement in libpijul/src/pristine/mod.rs at line 1648
k1,Edge {flag: flag ^ EdgeFlags::PARENT,dest: Position {change: k0.change,pos: k0.end,},introduced_by,},&k1,&SerializedEdge::new(flag | EdgeFlags::PARENT, k0.change, k0.end, introduced_by), - replacement in libpijul/src/pristine/mod.rs at line 1659
internal: ChangeId,hash: Hash,internal: &ChangeId,hash: &Hash, - replacement in libpijul/src/pristine/mod.rs at line 1664
txn.put_external(internal, hash)?;txn.put_internal(hash, internal)?;let shash = hash.into();txn.put_external(internal, &shash)?;txn.put_internal(&shash, internal)?; - replacement in libpijul/src/pristine/mod.rs at line 1669
let dep_internal = txn.get_internal(*dep)?.unwrap();let dep_internal = *txn.get_internal(&dep.into())?.unwrap(); - replacement in libpijul/src/pristine/mod.rs at line 1671
txn.put_revdep(dep_internal, internal)?;txn.put_dep(internal, dep_internal)?;txn.put_revdep(&dep_internal, internal)?;txn.put_dep(internal, &dep_internal)?; - replacement in libpijul/src/pristine/mod.rs at line 1692
txn.get_internal(c)?.unwrap_or(internal)txn.get_internal(&c.into())?.unwrap_or(internal) - replacement in libpijul/src/pristine/mod.rs at line 1697
change,change: *change, - replacement in libpijul/src/pristine/mod.rs at line 1701
txn.put_touched_files(inode, internal)?;txn.put_rev_touched_files(internal, inode)?;txn.put_touched_files(&inode, internal)?;txn.put_rev_touched_files(internal, &inode)?; - replacement in libpijul/src/pristine/mod.rs at line 1705
change: internal,change: *internal, - replacement in libpijul/src/pristine/mod.rs at line 1708
txn.put_touched_files(inode, internal)?;txn.put_rev_touched_files(internal, inode)?;txn.put_touched_files(&inode, internal)?;txn.put_rev_touched_files(internal, &inode)?; - replacement in libpijul/src/pristine/mod.rs at line 1719[18.753]→[18.753:813](∅→∅),[18.813]→[18.3594:3674](∅→∅),[18.3674]→[18.3634:3664](∅→∅),[18.3634]→[18.3634:3664](∅→∅)
) -> Result<Option<(u64, Merkle)>, TxnErr<T::GraphError>> {for x in T::cursor_revchangeset_ref(txn, txn.rev_changes(&c), Some(pos))? {let (n, (_, m)) = x?;) -> Result<Option<(u64, SerializedMerkle)>, TxnErr<T::GraphError>> {for x in T::cursor_revchangeset_ref(txn, txn.rev_changes(&c), Some(pos.into()))? {let (&n, m) = x?;let n: u64 = n.into(); - replacement in libpijul/src/pristine/mod.rs at line 1724
return Ok(Some((n, m)));return Ok(Some((n, m.b.clone()))); - replacement in libpijul/src/pristine/mod.rs at line 1733
) -> Result<Option<(u64, Merkle)>, TxnErr<T::GraphError>> {) -> Result<Option<(u64, SerializedMerkle)>, TxnErr<T::GraphError>> { - replacement in libpijul/src/pristine/mod.rs at line 1738
let (b, (_, state)) = e?;Ok(Some((b, state)))let (&b, state) = e?;let b: u64 = b.into();Ok(Some((b, state.b.clone()))) - replacement in libpijul/src/pristine/mod.rs at line 1751
) -> Result<(u64, u64, Merkle), TxnErr<T::GraphError>> {) -> Result<(u64, u64, SerializedMerkle), TxnErr<T::GraphError>> { - replacement in libpijul/src/pristine/mod.rs at line 1756
return Ok((0, 0, Merkle::zero()));return Ok((0, 0, Merkle::zero().into())); - replacement in libpijul/src/pristine/mod.rs at line 1758
if let Some(aa) = txn.channel_has_state(txn.states(c0), state)? {return Ok((aa, b, state));if let Some(aa) = txn.channel_has_state(txn.states(c0), &state)? {return Ok((aa.into(), b, state)); - replacement in libpijul/src/pristine/mod.rs at line 1766
if let Some(aa_) = txn.channel_has_state(txn.states(c0), state)? {aa = aa_;if let Some(aa_) = txn.channel_has_state(txn.states(c0), &state)? {aa = aa_.into(); - replacement in libpijul/src/pristine/mod.rs at line 1783
let mut inode_ = inode;let mut inode_ = *inode; - replacement in libpijul/src/pristine/mod.rs at line 1785
if let Some(next) = txn.get_revtree(inode_, None).unwrap() {if let Some(next) = txn.get_revtree(&inode_, None).unwrap() { - replacement in libpijul/src/pristine/mod.rs at line 1791
if !is_alive(txn, &channel, vertex.inode_vertex()).unwrap() {if !is_alive(txn, &channel, &vertex.inode_vertex()).unwrap() { - replacement in libpijul/src/pristine/mod.rs at line 1808
for x in txn.iter_tree(id0, None).unwrap() {for x in txn.iter_tree(&id0, None).unwrap() { - replacement in libpijul/src/pristine/mod.rs at line 1810
if let Some(inode_) = h.insert(id.clone(), inode) {if let Some(inode_) = h.insert(id.to_owned(), inode) { - edit in libpijul/src/pristine/merkle.rs at line 8
}impl Default for Merkle {fn default() -> Self {Merkle::zero()} - edit in libpijul/src/pristine/merkle.rs at line 92[18.641228]
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]pub struct SerializedMerkle(pub [u8; 33]);impl PartialEq<Merkle> for SerializedMerkle {fn eq(&self, m: &Merkle) -> bool {match m {Merkle::Ed25519(q) => {(self.0)[0] == MerkleAlgorithm::Ed25519 as u8&& {let q = q.compress();q.as_bytes() == &(self.0)[1..]}}}}}impl PartialEq<SerializedMerkle> for Merkle {fn eq(&self, m: &SerializedMerkle) -> bool {m.eq(self)}}impl<'a> From<&'a Merkle> for SerializedMerkle {fn from(m: &'a Merkle) -> Self {let mut mm = [0; 33];match m {Merkle::Ed25519(q) => {mm[0] = MerkleAlgorithm::Ed25519 as u8;let q = q.compress();let q = q.as_bytes();(&mut mm[1..]).copy_from_slice(q);SerializedMerkle(mm)}}}}impl From<Merkle> for SerializedMerkle {fn from(m: Merkle) -> Self {let mut mm = [0; 33];match m {Merkle::Ed25519(q) => {mm[0] = MerkleAlgorithm::Ed25519 as u8;let q = q.compress();let q = q.as_bytes();(&mut mm[1..]).copy_from_slice(q);SerializedMerkle(mm)}}}}impl<'a> From<&'a SerializedMerkle> for Merkle {fn from(m: &'a SerializedMerkle) -> Self {assert_eq!((m.0)[0], MerkleAlgorithm::Ed25519 as u8);Merkle::Ed25519(curve25519_dalek::edwards::CompressedEdwardsY::from_slice(&(m.0)[1..]).decompress().unwrap(),)}}impl From<SerializedMerkle> for Merkle {fn from(m: SerializedMerkle) -> Self {assert_eq!((m.0)[0], MerkleAlgorithm::Ed25519 as u8);Merkle::Ed25519(curve25519_dalek::edwards::CompressedEdwardsY::from_slice(&(m.0)[1..]).decompress().unwrap(),)}} - edit in libpijul/src/pristine/inode.rs at line 1
use super::L64; - replacement in libpijul/src/pristine/inode.rs at line 5
pub struct Inode(pub(in crate::pristine) u64);pub struct Inode(pub(in crate::pristine) super::L64); - edit in libpijul/src/pristine/inode.rs at line 9
use byteorder::{ByteOrder, LittleEndian}; - replacement in libpijul/src/pristine/inode.rs at line 10
LittleEndian::write_u64(&mut b, self.0);self.0.to_slice_le(&mut b); - replacement in libpijul/src/pristine/inode.rs at line 16
pub const ROOT: Inode = Inode(0);pub const ROOT: Inode = Inode(L64(0u64)); - replacement in libpijul/src/pristine/inode.rs at line 21
Inode(rand::random())Inode(L64(rand::random())) - replacement in libpijul/src/pristine/hash.rs at line 46
write!(fmt, "{:?}", self.to_base32())write!(fmt, "{}", self.to_base32()) - edit in libpijul/src/pristine/hash.rs at line 154
}#[derive(Clone, Copy)]pub struct SerializedHash {pub(crate) t: u8,h: H}#[derive(Clone, Copy)]pub(crate) union H {none: (),blake3: [u8; 32],}pub(crate) const HASH_NONE: SerializedHash = SerializedHash {t: HashAlgorithm::None as u8,h: H { none: () },};use std::cmp::Ordering;impl PartialOrd for SerializedHash {fn partial_cmp(&self, b: &Self) -> Option<Ordering> {Some(self.t.cmp(&b.t))}}impl Ord for SerializedHash {fn cmp(&self, b: &Self) -> Ordering {match self.t.cmp(&b.t) {Ordering::Equal => {if self.t == HashAlgorithm::Blake3 as u8 {unsafe { self.h.blake3.cmp(&b.h.blake3) }} else {Ordering::Equal}}o => o}}}impl PartialEq for SerializedHash {fn eq(&self, b: &Self) -> bool {if self.t == HashAlgorithm::Blake3 as u8 && self.t == b.t {unsafe { self.h.blake3 == b.h.blake3 }} else if self.t == b.t {true} else {false}}}impl Eq for SerializedHash {}impl std::fmt::Debug for SerializedHash {fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result {Hash::from(self).fmt(fmt)}}impl<'a> From<&'a SerializedHash> for Hash {fn from(s: &'a SerializedHash) -> Hash {if s.t == HashAlgorithm::Blake3 as u8 {Hash::Blake3(unsafe { s.h.blake3.clone() })} else if s.t == HashAlgorithm::None as u8 {Hash::None} else {panic!("Unknown hash algorithm {:?}", s.t)}}}impl From<SerializedHash> for Hash {fn from(s: SerializedHash) -> Hash {(&s).into()} - edit in libpijul/src/pristine/hash.rs at line 232[18.648947]
impl From<Hash> for SerializedHash {fn from(s: Hash) -> SerializedHash {(&s).into()}}impl<'a> From<&'a Hash> for SerializedHash {fn from(s: &'a Hash) -> Self {match s {Hash::Blake3(s) => SerializedHash {t: HashAlgorithm::Blake3 as u8,h: H { blake3: s.clone() },},Hash::None => SerializedHash {t: 0,h: H { none: () },}}}} - edit in libpijul/src/pristine/edge.rs at line 3
use super::L64; - edit in libpijul/src/pristine/edge.rs at line 79
}/// The target half of an edge in the repository graph.#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)]pub struct SerializedEdge([super::L64; 3]);impl std::fmt::Debug for SerializedEdge {fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result {let pos = self.dest();use super::Base32;write!(fmt, "E({:?}, {}[{}], {})", self.flag(), pos.change.to_base32(), (pos.pos.0).0, self.introduced_by().to_base32())}}impl std::ops::SubAssign<EdgeFlags> for SerializedEdge {fn sub_assign(&mut self, e: EdgeFlags) {let ref mut f = (self.0)[0];f.0 = ((u64::from_le(f.0)) & !((e.bits() as u64) << 56)).to_le()}}impl SerializedEdge {pub fn flag(&self) -> EdgeFlags {let f = u64::from_le((self.0)[0].0);EdgeFlags::from_bits((f >> 56) as u8).unwrap()}pub fn dest(&self) -> Position<ChangeId> {let pos = u64::from_le((self.0[0]).0);Position {change: ChangeId((self.0)[1]),pos: ChangePosition(L64((pos & 0xffffffffffffff).to_le()))}}pub fn introduced_by(&self) -> ChangeId {ChangeId((self.0)[2])}}impl From<SerializedEdge> for Edge {fn from(s: SerializedEdge) -> Edge {Edge {flag: s.flag(),dest: s.dest(),introduced_by: s.introduced_by(),}}}impl From<Edge> for SerializedEdge {fn from(s: Edge) -> SerializedEdge {let pos = u64::from_le((s.dest.pos.0).0);assert!(pos < 1 << 56);SerializedEdge([(((s.flag.bits() as u64) << 56) | pos).into(),s.dest.change.0,s.introduced_by.0])}}impl<'a> From<&'a SerializedEdge> for Edge {fn from(s: &'a SerializedEdge) -> Edge {Edge {flag: s.flag(),dest: s.dest(),introduced_by: s.introduced_by(),}}}impl SerializedEdge {pub fn empty(dest: Position<ChangeId>, intro: ChangeId) -> Self {SerializedEdge([dest.pos.0, dest.change.0, intro.0])}pub fn new(flag: EdgeFlags, change: ChangeId, pos: ChangePosition, intro: ChangeId) -> Self {let pos = u64::from_le((pos.0).0);assert!(pos < 1 <<56);SerializedEdge([(pos | ((flag.bits() as u64) << 56)).into(), change.0, intro.0])} - replacement in libpijul/src/pristine/change_id.rs at line 1
use super::Base32;use byteorder::{ByteOrder, LittleEndian};use super::{L64, Base32}; - replacement in libpijul/src/pristine/change_id.rs at line 5
pub struct ChangeId(pub u64);pub struct ChangeId(pub super::L64); - replacement in libpijul/src/pristine/change_id.rs at line 14
pub const ROOT: ChangeId = ChangeId(0);pub const ROOT: ChangeId = ChangeId(L64(0)); - replacement in libpijul/src/pristine/change_id.rs at line 23
LittleEndian::write_u64(&mut b, self.0);self.0.to_slice_le(&mut b); - replacement in libpijul/src/pristine/change_id.rs at line 40
Some(ChangeId(LittleEndian::read_u64(&dec)))Some(ChangeId(L64::from_slice_le(&dec))) - replacement in libpijul/src/output/output.rs at line 102
txn.get_changeset(txn.changes(&channel), u.0.change)txn.get_changeset(txn.changes(&channel), &u.0.change) - replacement in libpijul/src/output/output.rs at line 105
&txn.get_changeset(txn.changes(&channel), v.0.change)&txn.get_changeset(txn.changes(&channel), &v.0.change) - replacement in libpijul/src/output/output.rs at line 127
if let Some(inode) = txn.get_revinodes(output_item.pos, None)? {Some((inode, txn.get_inodes(inode, None)?.unwrap()))if let Some(inode) = txn.get_revinodes(&output_item.pos, None)? {Some((*inode, *txn.get_inodes(inode, None)?.unwrap())) - replacement in libpijul/src/output/output.rs at line 263
let file_id_ = file_id.as_file_id();debug!("move_or_create {:?}", file_id_);debug!("move_or_create {:?}", file_id); - replacement in libpijul/src/output/output.rs at line 272
let parent = txn.get_revtree(inode, None)?.unwrap().to_owned();let parent = txn.get_revtree(&inode, None)?.unwrap().to_owned(); - replacement in libpijul/src/output/output.rs at line 274
del_tree_with_rev(txn, parent.as_file_id(), inode)?;del_tree_with_rev(txn, &parent, &inode)?; - replacement in libpijul/src/output/output.rs at line 292
if let Some(inode) = txn.get_tree(file_id_, None)? {crate::fs::rec_delete(txn, file_id.clone(), inode, true)if let Some(&inode) = txn.get_tree(&file_id, None)? {crate::fs::rec_delete(txn, &file_id, inode, true) - replacement in libpijul/src/output/output.rs at line 296
put_inodes_with_rev(txn, inode, output_item.pos)?;put_tree_with_rev(txn, file_id_, inode)?;put_inodes_with_rev(txn, &inode, &output_item.pos)?;put_tree_with_rev(txn, &file_id, &inode)?; - replacement in libpijul/src/output/output.rs at line 300
debug!("no current name, inserting {:?} {:?}", file_id_, inode);if let Some(inode) = txn.get_tree(file_id_, None)? {crate::fs::rec_delete(txn, file_id.clone(), inode, true)debug!("no current name, inserting {:?} {:?}", file_id, inode);if let Some(&inode) = txn.get_tree(&file_id, None)? {crate::fs::rec_delete(txn, &file_id, inode, true) - replacement in libpijul/src/output/output.rs at line 305
put_inodes_with_rev(txn, inode, output_item.pos)?;put_tree_with_rev(txn, file_id_, inode)?;put_inodes_with_rev(txn, &inode, &output_item.pos)?;put_tree_with_rev(txn, &file_id, &inode)?; - replacement in libpijul/src/output/output.rs at line 310
if let Some(inode) = txn.get_tree(file_id_, None)? {crate::fs::rec_delete(txn, file_id.clone(), inode, true)if let Some(&inode) = txn.get_tree(&file_id, None)? {crate::fs::rec_delete(txn, &file_id, inode, true) - replacement in libpijul/src/output/output.rs at line 317
inode, output_item.pos, file_id_inode, output_item.pos, file_id - replacement in libpijul/src/output/output.rs at line 319
put_inodes_with_rev(txn, inode, output_item.pos)?;put_tree_with_rev(txn, file_id_, inode)?;put_inodes_with_rev(txn, &inode, &output_item.pos)?;put_tree_with_rev(txn, &file_id, &inode)?; - replacement in libpijul/src/output/output.rs at line 326
txn.put_tree(path_id.as_file_id(), inode)?;txn.put_tree(&path_id, &inode)?; - replacement in libpijul/src/output/output.rs at line 347
let dest = txn.find_block(txn.graph(channel), edge.dest).unwrap();let dest = *txn.find_block(txn.graph(channel), edge.dest()).unwrap(); - replacement in libpijul/src/output/output.rs at line 352
edge.flag,edge.flag(), - replacement in libpijul/src/output/output.rs at line 355
edge.introduced_by,edge.introduced_by(), - replacement in libpijul/src/output/output.rs at line 373
OwnedPathId {&OwnedPathId { - replacement in libpijul/src/output/output.rs at line 375
basename: SmallString::from_str(""),basename: SmallString::new(), - replacement in libpijul/src/output/output.rs at line 386
if let Some(vertex) = txn.get_inodes(inode_, None)? {if let Some(vertex) = txn.get_inodes(&inode_, None)? { - replacement in libpijul/src/output/output.rs at line 388
&& !is_alive(txn, channel, vertex.inode_vertex())?&& !is_alive(txn, channel, &vertex.inode_vertex())? - replacement in libpijul/src/output/output.rs at line 394
dead.insert(id.to_owned(), (inode_, inode_filename(txn, inode_)?));dead.insert(id.to_owned(), (*inode_, inode_filename(txn, *inode_)?)); - replacement in libpijul/src/output/output.rs at line 396
if inode_ != inode {next_inodes.push((inode_, is_dead))if *inode_ != inode {next_inodes.push((*inode_, is_dead)) - replacement in libpijul/src/output/output.rs at line 413
del_tree_with_rev(txn, fileid.as_file_id(), *inode)?;if let Some(vertex) = txn.get_inodes(*inode, None)? {del_tree_with_rev(txn, &fileid, inode)?;for i in txn.iter_inodes().unwrap() {debug!("inodes = {:?}", i);}if let Some(&vertex) = txn.get_inodes(inode, None)? { - replacement in libpijul/src/output/output.rs at line 421
del_inodes_with_rev(txn, *inode, vertex)?;del_inodes_with_rev(txn, inode, &vertex)?; - replacement in libpijul/src/output/mod.rs at line 121
let name_vertex = txn.find_block(channel, e.dest).unwrap();let name_vertex = txn.find_block(channel, e.dest()).unwrap(); - replacement in libpijul/src/output/mod.rs at line 124
.get_contents(|h| txn.get_external(h).unwrap(), name_vertex, &mut name_buf).get_contents(|h| txn.get_external(&h).unwrap().map(|x| x.into()), *name_vertex, &mut name_buf) - replacement in libpijul/src/output/mod.rs at line 143
name_vertex,*name_vertex, - replacement in libpijul/src/output/mod.rs at line 155
name_vertex,*name_vertex, - replacement in libpijul/src/output/mod.rs at line 160
if !e.flag.contains(EdgeFlags::PARENT) {if !e.flag().contains(EdgeFlags::PARENT) { - replacement in libpijul/src/output/mod.rs at line 167
debug_root(txn, channel, e.dest.inode_vertex(), &mut f, false).unwrap();debug_root(txn, channel, e.dest().inode_vertex(), &mut f, false).unwrap(); - replacement in libpijul/src/output/mod.rs at line 174
name_vertex,*name_vertex, - replacement in libpijul/src/output/mod.rs at line 179
pos: child.dest,is_zombie: is_zombie(txn, channel, child.dest)?,pos: child.dest(),is_zombie: is_zombie(txn, channel, child.dest())?, - replacement in libpijul/src/output/archive.rs at line 170
txn.get_changeset(txn.changes(&channel), u.0.change)txn.get_changeset(txn.changes(&channel), &u.0.change) - replacement in libpijul/src/output/archive.rs at line 173
&txn.get_changeset(txn.changes(&channel), v.0.change)&txn.get_changeset(txn.changes(&channel), &v.0.change) - replacement in libpijul/src/output/archive.rs at line 210
crate::fs::get_latest_touch(txn, &channel, output_item.pos)?;crate::fs::get_latest_touch(txn, &channel, &output_item.pos)?; - replacement in libpijul/src/output/archive.rs at line 212
let ext = txn.get_external(latest_touch)?.unwrap();let c = changes.get_header(&ext).map_err(ArchiveError::P)?;let ext = txn.get_external(&latest_touch)?.unwrap();let c = changes.get_header(&ext.into()).map_err(ArchiveError::P)?; - replacement in libpijul/src/missing_context.rs at line 39
change: if let Some(i) = txn.get_internal(change)? {change: if let Some(&i) = txn.get_internal(&change.into())? { - replacement in libpijul/src/missing_context.rs at line 169
let source = txn.find_block_end(&channel, internal_pos(txn, &e.from, change_id)?)?;let target = txn.find_block(&channel, internal_pos(txn, &e.to.start_pos(), change_id)?)?;let source = *txn.find_block_end(&channel, internal_pos(txn, &e.from, change_id)?)?;let target = *txn.find_block(&channel, internal_pos(txn, &e.to.start_pos(), change_id)?)?; - replacement in libpijul/src/missing_context.rs at line 179
} else if is_alive(txn, channel, source)? {} else if is_alive(txn, channel, &source)? { - replacement in libpijul/src/missing_context.rs at line 196
if v.dest.change.is_root() || v.introduced_by.is_root() {if v.dest().change.is_root() || v.introduced_by().is_root() { - replacement in libpijul/src/missing_context.rs at line 199
if v.introduced_by == change_id {if v.introduced_by() == change_id { - replacement in libpijul/src/missing_context.rs at line 205
unknown.insert(txn.find_block_end(channel, v.dest)?);unknown.insert(*txn.find_block_end(channel, v.dest())?); - replacement in libpijul/src/missing_context.rs at line 226
if v.dest.change.is_root() || v.introduced_by.is_root() {if v.dest().change.is_root() || v.introduced_by().is_root() { - replacement in libpijul/src/missing_context.rs at line 229
if v.introduced_by == change_id || known(txn.get_external(v.introduced_by)?.unwrap()) {if v.introduced_by() == change_id || known(txn.get_external(&v.introduced_by())?.unwrap().into()) { - replacement in libpijul/src/missing_context.rs at line 258
while let Ok(dest_vertex) = txn.find_block(&channel, pos) {while let Ok(&dest_vertex) = txn.find_block(&channel, pos) { - replacement in libpijul/src/missing_context.rs at line 278
unknown: Vec<Edge>,parents: HashSet<Edge>,pseudo: Vec<(Vertex<ChangeId>, Edge)>,unknown: Vec<SerializedEdge>,parents: HashSet<SerializedEdge>,pseudo: Vec<(Vertex<ChangeId>, SerializedEdge)>, - replacement in libpijul/src/missing_context.rs at line 359
if v.introduced_by == change_id || v.dest.change.is_root() {if v.introduced_by() == change_id || v.dest().change.is_root() { - replacement in libpijul/src/missing_context.rs at line 362
if v.introduced_by.is_root() {ws.pseudo.push((dest_vertex, v));if v.introduced_by().is_root() {ws.pseudo.push((dest_vertex, *v)); - replacement in libpijul/src/missing_context.rs at line 375
if e.introduced_by == v.introduced_by {if e.introduced_by() == v.introduced_by() { - replacement in libpijul/src/missing_context.rs at line 381
let intro = txn.get_external(v.introduced_by)?.unwrap();let intro = txn.get_external(&v.introduced_by())?.unwrap().into(); - replacement in libpijul/src/missing_context.rs at line 383
ws.unknown.push(v);ws.unknown.push(*v); - replacement in libpijul/src/missing_context.rs at line 407
let p = txn.find_block(channel, edge.dest)?;assert!(!edge.flag.contains(EdgeFlags::FOLDER));let p = *txn.find_block(channel, edge.dest())?;assert!(!edge.flag().contains(EdgeFlags::FOLDER)); - replacement in libpijul/src/missing_context.rs at line 412
while let Ok(v) = txn.find_block(channel, u.end_pos()) {while let Ok(&v) = txn.find_block(channel, u.end_pos()) { - replacement in libpijul/src/missing_context.rs at line 421
if is_alive(txn, channel, p)? {if is_alive(txn, channel, &p)? { - replacement in libpijul/src/missing_context.rs at line 442[18.712042]→[18.91922:92012](∅→∅),[18.341]→[18.712091:712143](∅→∅),[18.58942]→[18.712091:712143](∅→∅),[18.92012]→[18.712091:712143](∅→∅),[18.712091]→[18.712091:712143](∅→∅),[18.712143]→[18.59322:59384](∅→∅),[18.59384]→[18.92013:92062](∅→∅),[18.59006]→[18.92013:92062](∅→∅)
if !is_alive(txn, channel, dest_vertex)? && !ws.repaired.contains(&dest_vertex) {if e.flag.contains(EdgeFlags::PARENT) {let p = txn.find_block_end(channel, e.dest)?;if !is_alive(txn, channel, p)? {if !is_alive(txn, channel, &dest_vertex)? && !ws.repaired.contains(&dest_vertex) {if e.flag().contains(EdgeFlags::PARENT) {let p = *txn.find_block_end(channel, e.dest())?;if !is_alive(txn, channel, &p)? { - replacement in libpijul/src/missing_context.rs at line 447
e.flag -= EdgeFlags::PARENT;del_graph_with_rev(txn, channel, e.flag, p, dest_vertex, e.introduced_by)?;e -= EdgeFlags::PARENT;del_graph_with_rev(txn, channel, e.flag(), p, dest_vertex, e.introduced_by())?; - replacement in libpijul/src/missing_context.rs at line 451
let p = txn.find_block(channel, e.dest)?;if !is_alive(txn, channel, p)? {let p = *txn.find_block(channel, e.dest())?;if !is_alive(txn, channel, &p)? { - replacement in libpijul/src/missing_context.rs at line 454
del_graph_with_rev(txn, channel, e.flag, dest_vertex, p, e.introduced_by)?;del_graph_with_rev(txn, channel, e.flag(), dest_vertex, p, e.introduced_by())?; - replacement in libpijul/src/missing_context.rs at line 480
while let Ok(dest_vertex) = txn.find_block(&channel, pos) {while let Ok(&dest_vertex) = txn.find_block(&channel, pos) { - replacement in libpijul/src/missing_context.rs at line 490
if v.introduced_by == change_id || v.dest.change.is_root() {if v.introduced_by() == change_id || v.dest().change.is_root() { - replacement in libpijul/src/missing_context.rs at line 493
if v.introduced_by.is_root() {ws.pseudo.push((dest_vertex, v));if v.introduced_by().is_root() {ws.pseudo.push((dest_vertex, *v)); - replacement in libpijul/src/missing_context.rs at line 497
if v.flag.contains(EdgeFlags::PARENT) {if v.flag().contains(EdgeFlags::PARENT) { - replacement in libpijul/src/missing_context.rs at line 499
let intro = txn.get_external(v.introduced_by)?.unwrap();let intro = txn.get_external(&v.introduced_by())?.unwrap().into(); - replacement in libpijul/src/missing_context.rs at line 502
unknown_parents.push((dest_vertex, v))unknown_parents.push((dest_vertex, *v)) - replacement in libpijul/src/missing_context.rs at line 523
unknown: &[(Vertex<ChangeId>, Edge)],unknown: &[(Vertex<ChangeId>, SerializedEdge)], - replacement in libpijul/src/missing_context.rs at line 526[18.714691]→[18.59509:59566](∅→∅),[18.59566]→[18.714748:714817](∅→∅),[18.59878]→[18.714748:714817](∅→∅),[18.714748]→[18.714748:714817](∅→∅)
let p = txn.find_block_end(channel, edge.dest)?;ws.unknown_parents.push((dest_vertex, p, inode, edge.flag));let p = *txn.find_block_end(channel, edge.dest())?;ws.unknown_parents.push((dest_vertex, p, inode, edge.flag())); - replacement in libpijul/src/missing_context.rs at line 531
while let Ok(u) = txn.find_block_end(channel, v.start_pos()) {while let Ok(&u) = txn.find_block_end(channel, v.start_pos()) { - replacement in libpijul/src/missing_context.rs at line 556
if !parent.flag.contains(EdgeFlags::PSEUDO) {ws.parents.insert(parent);if !parent.flag().contains(EdgeFlags::PSEUDO) {ws.parents.insert(*parent); - replacement in libpijul/src/missing_context.rs at line 562
let parent_dest = txn.find_block_end(channel, parent.dest)?;let parent_dest = *txn.find_block_end(channel, parent.dest())?; - replacement in libpijul/src/missing_context.rs at line 564
if parent.flag.contains(EdgeFlags::FOLDER) {if parent.flag().contains(EdgeFlags::FOLDER) { - replacement in libpijul/src/lib.rs at line 114
hash: crate::pristine::Hash,hash: &crate::pristine::Hash, - replacement in libpijul/src/lib.rs at line 124
hash: crate::pristine::Hash,hash: &crate::pristine::Hash, - replacement in libpijul/src/lib.rs at line 134
hash: pristine::Hash,hash: &pristine::Hash, - replacement in libpijul/src/lib.rs at line 143
hash: pristine::Hash,hash: &pristine::Hash, - replacement in libpijul/src/lib.rs at line 152
hash: pristine::Hash,hash: &pristine::Hash, - replacement in libpijul/src/lib.rs at line 161
hash: pristine::Hash,hash: &pristine::Hash, - replacement in libpijul/src/lib.rs at line 172
hash: pristine::Hash,hash: &pristine::Hash, - replacement in libpijul/src/lib.rs at line 255
apply::apply_local_change(self, channel, &change, hash, &recorded.updatables)?;apply::apply_local_change(self, channel, &change, &hash, &recorded.updatables)?; - replacement in libpijul/src/lib.rs at line 318
/* - replacement in libpijul/src/lib.rs at line 336
*/ - replacement in libpijul/src/lib.rs at line 341
state: pristine::Merkle,state: &pristine::Merkle, - replacement in libpijul/src/lib.rs at line 368
state: pristine::Merkle,state: &pristine::Merkle, - replacement in libpijul/src/lib.rs at line 377[18.95647]→[18.95647:95681](∅→∅),[18.60532]→[18.728959:728987](∅→∅),[18.95681]→[18.728959:728987](∅→∅),[18.728959]→[18.728959:728987](∅→∅)
let (_, (h, m)) = x?;if m == state {let (_, p) = x?;let m: Merkle = (&p.b).into();if &m == state { - replacement in libpijul/src/lib.rs at line 383
unrecord.push(h)unrecord.push(p.a.into()) - replacement in libpijul/src/lib.rs at line 388
for h in unrecord.drain(..) {let h = self.get_external(h)?.unwrap();for h in unrecord.iter() {let h = self.get_external(h)?.unwrap().into(); - replacement in libpijul/src/lib.rs at line 393
self.apply_change_rec(changes, channel, *app)?self.apply_change_rec(changes, channel, app)? - replacement in libpijul/src/lib.rs at line 397
Err(output::ArchiveError::StateNotFound { state })Err(output::ArchiveError::StateNotFound { state: *state }) - replacement in libpijul/src/lib.rs at line 418
hash: pristine::Hash,hash: &pristine::Hash, - replacement in libpijul/src/lib.rs at line 420
if let Some(cid) = pristine::GraphTxnT::get_internal(self, hash).map_err(|e| e.0)? {if let Some(cid) = pristine::GraphTxnT::get_internal(self, &hash.into()).map_err(|e| e.0)? { - edit in libpijul/src/lib.rs at line 423
.map(|x| x.map(|x| u64::from_le(x.0))) - replacement in libpijul/src/lib.rs at line 432
a: pristine::Vertex<pristine::ChangeId>,a: &pristine::Vertex<pristine::ChangeId>, - replacement in libpijul/src/lib.rs at line 448
iter: pristine::changeid_log(self, channel, from).map_err(|e| e.0)?,iter: pristine::changeid_log(self, channel, pristine::L64(from.to_le())).map_err(|e| e.0)?, - replacement in libpijul/src/lib.rs at line 478
iter: pristine::changeid_rev_log(self, channel, from).map_err(|e| e.0)?,iter: pristine::changeid_rev_log(self, channel, from.map(|x| pristine::L64(x.to_le()))).map_err(|e| e.0)?, - replacement in libpijul/src/lib.rs at line 486
from: Option<u64>,from: Option<pristine::L64>, - replacement in libpijul/src/lib.rs at line 492
u64,(pristine::ChangeId, pristine::Merkle),pristine::L64,pristine::Pair<pristine::ChangeId, pristine::SerializedMerkle>, - replacement in libpijul/src/lib.rs at line 505
if let Some((h, m)) = self.get_revchangeset(self.rev_changes(&channel.borrow()), n)if let Some(p) = self.get_revchangeset(self.rev_changes(&channel.borrow()),&pristine::L64(n.to_le()),) - replacement in libpijul/src/lib.rs at line 512
Ok(Some((self.get_external(h).map_err(|e| e.0)?.unwrap(), m)))Ok(Some((self.get_external(&p.a.into()).map_err(|e| e.0)?.unwrap().into(),(&p.b).into(),))) - replacement in libpijul/src/lib.rs at line 527
h: pristine::Hash,h: &pristine::Hash, - replacement in libpijul/src/lib.rs at line 529
if let Some(h) = pristine::GraphTxnT::get_internal(self, h).map_err(|e| e.0)? {if let Some(h) = pristine::GraphTxnT::get_internal(self, &h.into()).map_err(|e| e.0)? { - edit in libpijul/src/lib.rs at line 532
.map(|x| x.map(|x| u64::from_le(x.0))) - replacement in libpijul/src/lib.rs at line 538
fn touched_files(&self, h: pristine::Hash) -> Result<Option<Touched<Self>>, Self::DepsError> {if let Some(id) = pristine::GraphTxnT::get_internal(self, h).map_err(|e| e.0)? {fn touched_files(&self, h: &pristine::Hash) -> Result<Option<Touched<Self>>, Self::DepsError> {if let Some(id) = pristine::GraphTxnT::get_internal(self, &h.into()).map_err(|e| e.0)? { - replacement in libpijul/src/lib.rs at line 543
id,id: *id, - replacement in libpijul/src/lib.rs at line 554
position: pristine::Position<pristine::Hash>,position: &pristine::Position<pristine::Hash>, - replacement in libpijul/src/lib.rs at line 557
change: pristine::GraphTxnT::get_internal(self, position.change)?.unwrap(),change: *pristine::GraphTxnT::get_internal(self, &position.change.into())?.unwrap(), - replacement in libpijul/src/lib.rs at line 570
change: pristine::GraphTxnT::get_internal(self, position.change)?.unwrap(),change: *pristine::GraphTxnT::get_internal(self, &position.change.into())?.unwrap(), - replacement in libpijul/src/lib.rs at line 640
u64,(pristine::ChangeId, pristine::Merkle),pristine::L64,pristine::Pair<pristine::ChangeId, pristine::SerializedMerkle>, - replacement in libpijul/src/lib.rs at line 646
type Item = Result<(u64, (pristine::Hash, pristine::Merkle)), T::GraphError>;type Item = Result<(u64, (&'txn pristine::SerializedHash, &'txn pristine::SerializedMerkle)), T::GraphError>; - replacement in libpijul/src/lib.rs at line 649
Some(Ok((n, (c, m)))) => {let ext = match self.txn.get_external(c) {Some(Ok((n, p))) => {let ext = match self.txn.get_external(&p.a) { - replacement in libpijul/src/lib.rs at line 653
Ok(None) => panic!("Unknown change {:?}", c),Ok(None) => panic!("Unknown change {:?}", p), - replacement in libpijul/src/lib.rs at line 655
Some(Ok((n, (ext, m))))Some(Ok((u64::from_le(n.0), (ext, &p.b)))) - replacement in libpijul/src/lib.rs at line 669
u64,(pristine::ChangeId, pristine::Merkle),pristine::L64,pristine::Pair<pristine::ChangeId, pristine::SerializedMerkle>, - replacement in libpijul/src/lib.rs at line 675
type Item = Result<(u64, (pristine::Hash, pristine::Merkle)), T::GraphError>;type Item = Result<(u64, (&'txn pristine::SerializedHash, &'txn pristine::SerializedMerkle)), T::GraphError>; - replacement in libpijul/src/lib.rs at line 678
Some(Ok((n, (c, m)))) => match self.txn.get_external(c) {Ok(Some(ext)) => Some(Ok((n, (ext, m)))),Some(Ok((n, p))) => match self.txn.get_external(&p.a.into()) {Ok(Some(ext)) => Some(Ok((u64::from_le(n.0), (ext, &p.b)))), - replacement in libpijul/src/lib.rs at line 681
Ok(None) => panic!("Unknown change {:?}", c),Ok(None) => panic!("Unknown change {:?}", p), - replacement in libpijul/src/lib.rs at line 713
if cid > self.id {if *cid > self.id { - replacement in libpijul/src/lib.rs at line 715
} else if cid == self.id {let change = match self.txn.get_external(file.change) {} else if *cid == self.id {let change = match self.txn.get_external(&file.change) { - replacement in libpijul/src/lib.rs at line 721
change,change: change.into(), - replacement in libpijul/src/fs.rs at line 66
already_taken = txn.get_revtree(inode, None)?.is_some();already_taken = txn.get_revtree(&inode, None)?.is_some(); - replacement in libpijul/src/fs.rs at line 77
let pathid = OwnedPathId {parent_inode: inode,basename: SmallString::new(),};for x in txn.iter_tree(pathid.clone(), None)? {for x in txn.iter_tree(&OwnedPathId::inode(inode), None)? { - replacement in libpijul/src/fs.rs at line 79
if pid < pathid {if pid.parent_inode < inode { - replacement in libpijul/src/fs.rs at line 81
} else if pid > pathid {} else if pid.parent_inode > inode { - replacement in libpijul/src/fs.rs at line 94
let mut fileid = OwnedPathId {parent_inode: Inode::ROOT,basename: SmallString::new(),};let mut fileid = OwnedPathId::inode(Inode::ROOT); - replacement in libpijul/src/fs.rs at line 100
for x in txn.iter_tree(fileid.clone(), None)? {for x in txn.iter_tree(&fileid, None)? { - replacement in libpijul/src/fs.rs at line 106
id > fileidid > &fileid - replacement in libpijul/src/fs.rs at line 108
if id > fileid {if id > &fileid { - replacement in libpijul/src/fs.rs at line 110
} else if id < fileid {} else if id < &fileid { - replacement in libpijul/src/fs.rs at line 114
fileid.parent_inode = inode;fileid.parent_inode = *inode; - replacement in libpijul/src/fs.rs at line 155
match txn.get_revtree(current, None)? {match txn.get_revtree(¤t, None)? { - replacement in libpijul/src/fs.rs at line 157
components.push(v.basename);components.push(v.basename.to_owned()); - replacement in libpijul/src/fs.rs at line 194
if let Some(inode) = txn.get_tree(parent_id.as_file_id(), None)? {if let Some(&inode) = txn.get_tree(&parent_id, None)? { - replacement in libpijul/src/fs.rs at line 201
del_tree_with_rev(txn, parent_id.as_file_id(), inode)?;if let Some(vertex) = txn.get_inodes(inode, None)? {del_inodes_with_rev(txn, inode, vertex)?;del_tree_with_rev(txn, &parent_id, &inode)?;if let Some(&vertex) = txn.get_inodes(&inode, None)? {del_inodes_with_rev(txn, &inode, &vertex)?; - replacement in libpijul/src/fs.rs at line 205
put_tree_with_rev(txn, parent_id.as_file_id(), child)?;put_tree_with_rev(txn, &parent_id, &child)?; - replacement in libpijul/src/fs.rs at line 217
put_tree_with_rev(txn, parent_id.as_file_id(), child_inode)?;put_tree_with_rev(txn, &parent_id, &child_inode)?; - replacement in libpijul/src/fs.rs at line 224
txn.put_tree(dir_id.as_file_id(), child_inode)?;txn.put_tree(&dir_id, &child_inode)?; - replacement in libpijul/src/fs.rs at line 272
let fileref = txn.get_revtree(inode, None)?.unwrap().to_owned();let fileref = txn.get_revtree(&inode, None)?.unwrap().to_owned(); - replacement in libpijul/src/fs.rs at line 274
del_tree_with_rev(txn, fileref.as_file_id(), inode)?;del_tree_with_rev(txn, &fileref, &inode)?; - replacement in libpijul/src/fs.rs at line 278
(OwnedPathId {&OwnedPathId { - replacement in libpijul/src/fs.rs at line 281
}).as_file_id(),}, - replacement in libpijul/src/fs.rs at line 291
parent: OwnedPathId,parent: &PathId, - replacement in libpijul/src/fs.rs at line 301
for x in txn.iter_tree(file_id.clone(), None)? {for x in txn.iter_tree(&file_id, None)? { - edit in libpijul/src/fs.rs at line 303
assert!(k.parent_inode >= file_id.parent_inode); - edit in libpijul/src/fs.rs at line 306
} else if k.parent_inode < file_id.parent_inode {continue; - replacement in libpijul/src/fs.rs at line 310
children.push((k, inode))children.push((k.to_owned(), *inode)) - replacement in libpijul/src/fs.rs at line 315
rec_delete(txn, k, inode_, delete_inodes)?;rec_delete(txn, &k, inode_, delete_inodes)?; - replacement in libpijul/src/fs.rs at line 322
assert!(inode.is_root() || txn.del_tree(file_id.as_file_id(), Some(inode))?);assert!(inode.is_root() || txn.del_tree(&file_id, Some(&inode))?); - replacement in libpijul/src/fs.rs at line 324
if !inode.is_root() && del_tree_with_rev(txn, parent.as_file_id(), inode)? {if !inode.is_root() && del_tree_with_rev(txn, &parent, &inode)? { - replacement in libpijul/src/fs.rs at line 326
if let Some(vertex) = txn.get_inodes(inode, None)? {del_inodes_with_rev(txn, inode, vertex)?;if let Some(&vertex) = txn.get_inodes(&inode, None)? {del_inodes_with_rev(txn, &inode, &vertex)?; - replacement in libpijul/src/fs.rs at line 333
parent.as_file_id(),parent, - replacement in libpijul/src/fs.rs at line 350
txn.get_revtree(inode, None)?.unwrap().to_owned()txn.get_revtree(&inode, None)?.unwrap().to_owned() - replacement in libpijul/src/fs.rs at line 353
rec_delete(txn, parent, inode, false)?;rec_delete(txn, &parent, inode, false)?; - replacement in libpijul/src/fs.rs at line 363
iter: crate::pristine::Cursor<T, &'txn T, T::TreeCursor, OwnedPathId, Inode>,iter: crate::pristine::Cursor<T, &'txn T, T::TreeCursor, PathId, Inode>, - replacement in libpijul/src/fs.rs at line 375
return Some(Ok((k.basename, v)));return Some(Ok((k.basename.to_owned(), *v))); - replacement in libpijul/src/fs.rs at line 396
OwnedPathId {&OwnedPathId { - replacement in libpijul/src/fs.rs at line 425
let iter = match self.txn.iter_tree(fileid, None) {let iter = match self.txn.iter_tree(&fileid, None) { - replacement in libpijul/src/fs.rs at line 442
self.stack.push((v, name))self.stack.push((*v, name)) - replacement in libpijul/src/fs.rs at line 483
let dest = match self.txn.find_block(self.channel, child.dest) {let dest = match self.txn.find_block(self.channel, child.dest()) { - replacement in libpijul/src/fs.rs at line 491
dest,*dest, - replacement in libpijul/src/fs.rs at line 502
if self.visited.insert(grandchild.dest) {if self.visited.insert(grandchild.dest()) { - replacement in libpijul/src/fs.rs at line 506
grandchild.dest.inode_vertex(),grandchild.dest().inode_vertex(), - replacement in libpijul/src/fs.rs at line 514
return Some(Ok(grandchild.dest));return Some(Ok(grandchild.dest())); - replacement in libpijul/src/fs.rs at line 570
let dest = self.txn.find_block(self.channel, child.dest).unwrap();let dest = self.txn.find_block(self.channel, child.dest()).unwrap(); - replacement in libpijul/src/fs.rs at line 573
.get_contents(|p| self.txn.get_external(p).unwrap(), dest, &mut buf).get_contents(|p| self.txn.get_external(&p).unwrap().map(|x| x.into()), *dest, &mut buf) - replacement in libpijul/src/fs.rs at line 583
dest,*dest, - replacement in libpijul/src/fs.rs at line 595
grandchild.dest,grandchild.introduced_by,grandchild.dest(),grandchild.introduced_by(), - replacement in libpijul/src/fs.rs at line 653
let dest = self.txn.find_block_end(&self.channel, parent.dest).unwrap();let dest = self.txn.find_block_end(&self.channel, parent.dest()).unwrap(); - replacement in libpijul/src/fs.rs at line 656
.get_contents(|p| self.txn.get_external(p).unwrap(), dest, &mut buf).get_contents(|p| self.txn.get_external(&p).unwrap().map(|x| x.into()), *dest, &mut buf) - replacement in libpijul/src/fs.rs at line 665
dest,*dest, - replacement in libpijul/src/fs.rs at line 670
Some(Ok(grandparent)) => return Some(Ok((grandparent.dest, perms, basename))),Some(Ok(grandparent)) => return Some(Ok((grandparent.dest(), perms, basename))), - replacement in libpijul/src/fs.rs at line 745
let parent_dest = txn.find_block_end(&graph, parent?.dest).unwrap();let parent_dest = txn.find_block_end(&graph, parent?.dest()).unwrap(); - replacement in libpijul/src/fs.rs at line 747
iter_adjacent(txn, &graph, parent_dest, f, f | EdgeFlags::PSEUDO)?iter_adjacent(txn, &graph, *parent_dest, f, f | EdgeFlags::PSEUDO)? - replacement in libpijul/src/fs.rs at line 749
stack.push((grandparent?.dest, false))stack.push((grandparent?.dest(), false)) - replacement in libpijul/src/fs.rs at line 783
let name_dest = txn.find_block(txn.graph(channel), name.dest).unwrap();let name_dest = txn.find_block(txn.graph(channel), name.dest()).unwrap(); - replacement in libpijul/src/fs.rs at line 787
.get_contents(|h| txn.get_external(h).unwrap(), name_dest, &mut name_buf).get_contents(|h| txn.get_external(&h).unwrap().map(|x| x.into()), *name_dest, &mut name_buf) - replacement in libpijul/src/fs.rs at line 792
.get_changeset(txn.changes(&channel), name.dest.change).get_changeset(txn.changes(&channel), &name.dest().change) - replacement in libpijul/src/fs.rs at line 806
current = iter_adjacent(txn, txn.graph(channel), next, flag0, flag1)?current = iter_adjacent(txn, txn.graph(channel), *next, flag0, flag1)? - replacement in libpijul/src/fs.rs at line 809
.dest.dest() - replacement in libpijul/src/fs.rs at line 834[18.6237]→[18.761532:761584](∅→∅),[18.63068]→[18.761532:761584](∅→∅),[18.64178]→[18.761532:761584](∅→∅),[18.114035]→[18.761532:761584](∅→∅),[18.761532]→[18.761532:761584](∅→∅)
assert_eq!(inode_vertex, v.inode_vertex());assert_eq!(*inode_vertex, v.inode_vertex()); - replacement in libpijul/src/fs.rs at line 837[18.64261]→[18.761665:761721](∅→∅),[18.114156]→[18.761665:761721](∅→∅),[18.761665]→[18.761665:761721](∅→∅)
if !name.flag.contains(EdgeFlags::PARENT) {if !name.flag().contains(EdgeFlags::PARENT) { - replacement in libpijul/src/fs.rs at line 842
.get_changeset(txn.changes(&channel), name.dest.change)?.get_changeset(txn.changes(&channel), &name.dest().change)? - replacement in libpijul/src/fs.rs at line 845
let name_dest = txn.find_block_end(txn.graph(channel), name.dest).unwrap();let name_dest = txn.find_block_end(txn.graph(channel), name.dest()).unwrap(); - replacement in libpijul/src/fs.rs at line 848
for e in iter_adjacent(txn, txn.graph(channel), name_dest, flag0, flag1)? {for e in iter_adjacent(txn, txn.graph(channel), *name_dest, flag0, flag1)? { - replacement in libpijul/src/fs.rs at line 850
if e.flag.contains(EdgeFlags::PARENT | EdgeFlags::FOLDER) {if e.flag().contains(EdgeFlags::PARENT | EdgeFlags::FOLDER) { - replacement in libpijul/src/fs.rs at line 857
if !next.flag.contains(EdgeFlags::DELETED) {if !next.flag().contains(EdgeFlags::DELETED) { - replacement in libpijul/src/fs.rs at line 869
next_v = Some((name_dest, age, next.dest));next_v = Some((name_dest, age, next.dest())); - replacement in libpijul/src/fs.rs at line 877
.get_contents(|h| txn.get_external(h).unwrap(), name, &mut name_buf).get_contents(|h| txn.get_external(&h).unwrap().map(|x| x.into()), *name, &mut name_buf) - replacement in libpijul/src/fs.rs at line 891
pos: Position<ChangeId>,pos: &Position<ChangeId>, - replacement in libpijul/src/fs.rs at line 893
let mut latest_change = 0;let mut latest_change = L64(0); - replacement in libpijul/src/fs.rs at line 907
if let Some(t) = txn.get_changeset(txn.changes(&channel), change)? {if let Some(&t) = txn.get_changeset(txn.changes(&channel), &change)? { - replacement in libpijul/src/fs.rs at line 910
id = change;id = *change; - replacement in libpijul/src/fs.rs at line 919
let (n, (int, _)) = l?;if txn.get_touched_files(pos, Some(int))?.is_some() {id = int;latest_change = n;let (n, p) = l?;if txn.get_touched_files(pos, Some(&p.a))?.is_some() {id = p.a;latest_change = *n; - replacement in libpijul/src/fs.rs at line 928
Ok((latest_change, id))Ok((latest_change.into(), id)) - replacement in libpijul/src/find_alive.rs at line 9[18.32412]→[18.763686:763834](∅→∅),[18.114985]→[18.763686:763834](∅→∅),[18.763686]→[18.763686:763834](∅→∅)
let mut stack = vec![Edge {dest: vertex0.start_pos(),introduced_by: ChangeId::ROOT,flag: EdgeFlags::empty(),}];let mut stack = vec![SerializedEdge::empty(vertex0.start_pos(), ChangeId::ROOT)]; - replacement in libpijul/src/find_alive.rs at line 13
if !visited.insert(elt.dest) {if !visited.insert(elt.dest()) { - replacement in libpijul/src/find_alive.rs at line 16
let vertex = txn.find_block(&channel, elt.dest)?;let vertex = txn.find_block(&channel, elt.dest())?; - replacement in libpijul/src/find_alive.rs at line 19
for v in iter_adj_all(txn, &channel, vertex)? {for v in iter_adj_all(txn, &channel, *vertex)? { - replacement in libpijul/src/find_alive.rs at line 21[18.15586]→[18.764387:764439](∅→∅),[18.64607]→[18.764387:764439](∅→∅),[18.115066]→[18.764387:764439](∅→∅),[18.764387]→[18.764387:764439](∅→∅)
if v.flag.contains(EdgeFlags::FOLDER) {if v.flag().contains(EdgeFlags::FOLDER) { - replacement in libpijul/src/find_alive.rs at line 25[18.764581]→[18.764581:764633](∅→∅),[18.764633]→[18.64608:64721](∅→∅),[18.64721]→[18.764689:764789](∅→∅),[18.764689]→[18.764689:764789](∅→∅)
if v.flag.contains(EdgeFlags::PARENT) {if v.flag.contains(EdgeFlags::BLOCK)&& !v.flag.contains(EdgeFlags::DELETED)&& vertex != vertex0&& !v.flag.contains(EdgeFlags::PSEUDO)if v.flag().contains(EdgeFlags::PARENT) {if v.flag().contains(EdgeFlags::BLOCK)&& !v.flag().contains(EdgeFlags::DELETED)&& *vertex != vertex0&& !v.flag().contains(EdgeFlags::PSEUDO) - replacement in libpijul/src/find_alive.rs at line 31
alive.insert(vertex);alive.insert(*vertex); - replacement in libpijul/src/find_alive.rs at line 38
stack.push(v)stack.push(*v) - replacement in libpijul/src/find_alive.rs at line 52
let mut stack = vec![Edge {dest: vertex0.end_pos(),introduced_by: ChangeId::ROOT,flag: EdgeFlags::empty(),}];let mut stack = vec![SerializedEdge::empty(vertex0.end_pos(), ChangeId::ROOT)]; - replacement in libpijul/src/find_alive.rs at line 55
if elt.dest.is_root() {if elt.dest().is_root() { - replacement in libpijul/src/find_alive.rs at line 58
if !visited.insert(elt.dest) {if !visited.insert(elt.dest()) { - replacement in libpijul/src/find_alive.rs at line 61
let vertex = txn.find_block_end(&channel, elt.dest)?;let vertex = *txn.find_block_end(&channel, elt.dest())?; - replacement in libpijul/src/find_alive.rs at line 69
if !v.flag.is_parent() {is_file |= !v.flag.is_folder();if !v.flag().is_parent() {is_file |= !v.flag().is_folder(); - replacement in libpijul/src/find_alive.rs at line 73
if v.flag & EdgeFlags::pseudof() == EdgeFlags::PSEUDO {if v.flag() & EdgeFlags::pseudof() == EdgeFlags::PSEUDO { - replacement in libpijul/src/find_alive.rs at line 76
if !v.flag.is_deleted() {if v.flag.is_folder() {if !v.flag().is_deleted() {if v.flag().is_folder() { - replacement in libpijul/src/find_alive.rs at line 80
is_file |= !e.flag.intersects(EdgeFlags::parent_folder())is_file |= !e.flag().intersects(EdgeFlags::parent_folder()) - replacement in libpijul/src/find_alive.rs at line 89
if v.introduced_by != change {if v.introduced_by() != change { - replacement in libpijul/src/find_alive.rs at line 95
if v.flag.is_folder() {if v.flag().is_folder() { - replacement in libpijul/src/find_alive.rs at line 102
stack.push(v)stack.push(*v) - replacement in libpijul/src/diff/vertex_buffer.rs at line 98
ChangePosition(self.pos_a[i].vertex.start.0 + (pos - self.pos_a[i].pos) as u64)ChangePosition(self.pos_a[i].vertex.start.0 + (pos - self.pos_a[i].pos)) - replacement in libpijul/src/diff/vertex_buffer.rs at line 102
ChangePosition(self.pos_a[i].vertex.start.0 + (end_pos - self.pos_a[i].pos) as u64)ChangePosition(self.pos_a[i].vertex.start.0 + (end_pos - self.pos_a[i].pos)) - replacement in libpijul/src/diff/vertex_buffer.rs at line 109
v.pos = ChangePosition(self.pos_a[i].vertex.start.0 + (pos - self.pos_a[i].pos) as u64)v.pos = ChangePosition(self.pos_a[i].vertex.start.0 + (pos - self.pos_a[i].pos)) - replacement in libpijul/src/diff/replace.rs at line 71
start: ChangePosition(start as u64),end: ChangePosition(end as u64),start: ChangePosition(start.into()),end: ChangePosition(end.into()), - replacement in libpijul/src/diff/replace.rs at line 136
pos: ChangePosition(pos.0 + offset as u64),pos: ChangePosition(pos.0 + offset), - replacement in libpijul/src/diff/replace.rs at line 253
e.push(ChangePosition((contents_len + b_len_bytes) as u64));e.push(ChangePosition((contents_len + b_len_bytes).into())); - replacement in libpijul/src/diff/replace.rs at line 295
.insert(conflict, ChangePosition(len_bytes as u64));.insert(conflict, ChangePosition(len_bytes.into())); - replacement in libpijul/src/diff/mod.rs at line 164[18.65652]→[18.798296:798352](∅→∅),[18.116349]→[18.798296:798352](∅→∅),[18.798296]→[18.798296:798352](∅→∅)
if e.flag.contains(EdgeFlags::PSEUDO) {if e.flag().contains(EdgeFlags::PSEUDO) { - replacement in libpijul/src/diff/mod.rs at line 167
if e.flag.contains(EdgeFlags::FOLDER) {if e.flag().contains(EdgeFlags::FOLDER) { - replacement in libpijul/src/diff/mod.rs at line 174
if e.flag.contains(EdgeFlags::PARENT) {if e.flag.contains(EdgeFlags::DELETED) {if e.flag().contains(EdgeFlags::PARENT) {if e.flag().contains(EdgeFlags::DELETED) { - replacement in libpijul/src/diff/mod.rs at line 177
previous: e.flag - EdgeFlags::PARENT,flag: e.flag - EdgeFlags::PARENT,from: e.dest.to_option(),previous: e.flag() - EdgeFlags::PARENT,flag: e.flag() - EdgeFlags::PARENT,from: e.dest().to_option(), - replacement in libpijul/src/diff/mod.rs at line 181
introduced_by: Some(e.introduced_by),introduced_by: Some(e.introduced_by()), - replacement in libpijul/src/diff/mod.rs at line 184
let previous = e.flag - EdgeFlags::PARENT;let previous = e.flag() - EdgeFlags::PARENT; - replacement in libpijul/src/diff/mod.rs at line 188
from: e.dest.to_option(),from: e.dest().to_option(), - replacement in libpijul/src/diff/mod.rs at line 190
introduced_by: Some(e.introduced_by),introduced_by: Some(e.introduced_by()), - replacement in libpijul/src/diff/mod.rs at line 216
start: ChangePosition(pos as u64),end: ChangePosition(pos_end as u64),start: ChangePosition(pos.into()),end: ChangePosition(pos_end.into()), - replacement in libpijul/src/diff/delete.rs at line 168
if !e.flag.contains(EdgeFlags::PARENT) || e.flag.contains(EdgeFlags::PSEUDO) {if !e.flag().contains(EdgeFlags::PARENT) || e.flag().contains(EdgeFlags::PSEUDO) { - replacement in libpijul/src/diff/delete.rs at line 171
let previous = e.flag - EdgeFlags::PARENT;let previous = e.flag() - EdgeFlags::PARENT; - replacement in libpijul/src/diff/delete.rs at line 174
&& !e.flag.contains(EdgeFlags::BLOCK)&& !e.flag().contains(EdgeFlags::BLOCK) - replacement in libpijul/src/diff/delete.rs at line 182
e.dest.to_option()e.dest().to_option() - replacement in libpijul/src/diff/delete.rs at line 187
introduced_by: Some(e.introduced_by),introduced_by: Some(e.introduced_by()), - replacement in libpijul/src/diff/delete.rs at line 228
let pos = ChangePosition(self.rec.contents.len() as u64);let pos = ChangePosition(self.rec.contents.len().into()); - replacement in libpijul/src/diff/delete.rs at line 340
if e.flag.contains(EdgeFlags::PSEUDO) || !e.flag.contains(EdgeFlags::PARENT) {if e.flag().contains(EdgeFlags::PSEUDO) || !e.flag().contains(EdgeFlags::PARENT) { - replacement in libpijul/src/diff/delete.rs at line 343
let previous = e.flag - EdgeFlags::PARENT;let previous = e.flag() - EdgeFlags::PARENT; - replacement in libpijul/src/diff/delete.rs at line 348
e.dest.to_option()e.dest().to_option() - replacement in libpijul/src/diff/delete.rs at line 353
introduced_by: Some(e.introduced_by),introduced_by: Some(e.introduced_by()), - replacement in libpijul/src/changestore/mod.rs at line 90
pub(crate) fn deletes_pos(&self, pos: Position<Option<Hash>>) -> Vec<Hash> {pub fn deletes_pos(&self, pos: Position<Option<Hash>>) -> Vec<Hash> { - replacement in libpijul/src/changestore/memory.rs at line 46
buf.resize((key.end.0 - key.start.0) as usize, 0);buf.resize(key.end.us() - key.start.us(), 0); - replacement in libpijul/src/changestore/memory.rs at line 52
let start = key.start.0 as usize;let end = key.end.0 as usize;let start = key.start.us();let end = key.end.us(); - replacement in libpijul/src/changestore/memory.rs at line 64
buf.resize((key.end.0 - key.start.0) as usize, 0);buf.resize(key.end.us() - key.start.us(), 0); - replacement in libpijul/src/changestore/memory.rs at line 70
let start = key.start.0 as usize;let end = key.end.0 as usize;let start = key.start.us();let end = key.end.us(); - replacement in libpijul/src/changestore/filesystem.rs at line 159
buf.resize((key.end.0 - key.start.0) as usize, 0);buf.resize(key.end.us() - key.start.us(), 0); - replacement in libpijul/src/changestore/filesystem.rs at line 166
let n = p.read_contents(key.start.0, buf)?;let n = p.read_contents(key.start.into(), buf)?; - replacement in libpijul/src/changestore/filesystem.rs at line 175
buf.resize((key.end.0 - key.start.0) as usize, 0);buf.resize(key.end.us() - key.start.us(), 0); - replacement in libpijul/src/changestore/filesystem.rs at line 181
let n = p.read_contents(key.start.0, buf)?;let n = p.read_contents(key.start.into(), buf)?; - edit in libpijul/src/change.rs at line 169
// Beware of change the version, tags also use that. - replacement in libpijul/src/change.rs at line 246
let a = txn.get_internal(*a).unwrap().unwrap();let b = txn.get_internal(*b).unwrap().unwrap();let a = txn.get_internal(&a.into()).unwrap().unwrap();let b = txn.get_internal(&b.into()).unwrap().unwrap(); - replacement in libpijul/src/change.rs at line 254
let a = txn.get_internal(*a).unwrap().unwrap();let b = txn.get_internal(*b).unwrap().unwrap();let a = txn.get_internal(&a.into()).unwrap().unwrap();let b = txn.get_internal(&b.into()).unwrap().unwrap(); - replacement in libpijul/src/change.rs at line 269[18.837994]→[18.118823:118949](∅→∅),[18.118949]→[18.838097:838121](∅→∅),[18.838097]→[18.838097:838121](∅→∅)
for x in changeid_log(txn, &channel, 0)? {let (_, (ch, _)) = x?;let h = txn.get_external(ch)?.unwrap();deps.insert(h);for x in changeid_log(txn, &channel, L64(0))? {let (_, p) = x?;let h = txn.get_external(&p.a)?.unwrap();deps.insert(h.into()); - replacement in libpijul/src/change.rs at line 286
change: txn.get_internal(p)?.unwrap(),change: *txn.get_internal(&p.into())?.unwrap(), - replacement in libpijul/src/change.rs at line 293
for edge in iter_adj_all(txn, channel, from)? {for edge in iter_adj_all(txn, channel, *from)? { - replacement in libpijul/src/change.rs at line 295
if let Some(ext) = txn.get_external(edge.introduced_by)? {if let Some(ext) = txn.get_external(&edge.introduced_by())? {let ext: Hash = ext.into(); - replacement in libpijul/src/change.rs at line 299
zombie_deps.insert(ext.to_owned());zombie_deps.insert(ext); - replacement in libpijul/src/change.rs at line 302
if let Some(ext) = txn.get_external(edge.dest.change)? {if let Some(ext) = txn.get_external(&edge.dest().change)? {let ext: Hash = ext.into(); - replacement in libpijul/src/change.rs at line 306
zombie_deps.insert(ext.to_owned());zombie_deps.insert(ext); - replacement in libpijul/src/change.rs at line 321
change: txn.get_internal(p)?.unwrap(),change: *txn.get_internal(&p.into())?.unwrap(), - replacement in libpijul/src/change.rs at line 329
for edge in iter_adj_all(txn, channel, to)? {for edge in iter_adj_all(txn, channel, *to)? { - replacement in libpijul/src/change.rs at line 331
if let Some(ext) = txn.get_external(edge.introduced_by)? {if let Some(ext) = txn.get_external(&edge.introduced_by())? {let ext = ext.into(); - replacement in libpijul/src/change.rs at line 335
zombie_deps.insert(ext.to_owned());zombie_deps.insert(ext); - replacement in libpijul/src/change.rs at line 338
if let Some(ext) = txn.get_external(edge.dest.change)? {if let Some(ext) = txn.get_external(&edge.dest().change)? {let ext = ext.into(); - replacement in libpijul/src/change.rs at line 342
zombie_deps.insert(ext.to_owned());zombie_deps.insert(ext); - replacement in libpijul/src/change.rs at line 367
let id = txn.get_internal(*h)?.unwrap();let id = txn.get_internal(&h.into())?.unwrap(); - edit in libpijul/src/change.rs at line 370
let time = u64::from_le(time.0); - edit in libpijul/src/change.rs at line 408
let time = u64::from_le(time.0); - replacement in libpijul/src/change.rs at line 417
.map(|id| txn.get_external(id).unwrap().unwrap()).map(|id| txn.get_external(id).unwrap().unwrap().into()) - replacement in libpijul/src/change.rs at line 966
change: up.change.and_then(|a| txn.get_external(a).unwrap()),change: up.change.as_ref().and_then(|a| txn.get_external(a).unwrap().map(Into::into)), - replacement in libpijul/src/change.rs at line 973
change: down.change.and_then(|a| txn.get_external(a).unwrap()),change: down.change.as_ref().and_then(|a| txn.get_external(a).unwrap().map(Into::into)), - replacement in libpijul/src/change.rs at line 981
change: inode.change.and_then(|a| txn.get_external(a).unwrap()),change: inode.change.as_ref().and_then(|a| txn.get_external(a).unwrap().map(Into::into)), - replacement in libpijul/src/change.rs at line 992
change: edge.from.change.and_then(|a| txn.get_external(a).unwrap()),change: edge.from.change.as_ref().and_then(|a| txn.get_external(a).unwrap().map(Into::into)), - replacement in libpijul/src/change.rs at line 996
change: edge.to.change.and_then(|a| txn.get_external(a).unwrap()),change: edge.to.change.as_ref().and_then(|a| txn.get_external(a).unwrap().map(Into::into)), - replacement in libpijul/src/change.rs at line 1000
introduced_by: edge.introduced_by.map(|a| {introduced_by: edge.introduced_by.as_ref().map(|a| { - replacement in libpijul/src/change.rs at line 1002
aa.into() - replacement in libpijul/src/change.rs at line 1010
change: inode.change.and_then(|a| txn.get_external(a).unwrap()),change: inode.change.as_ref().and_then(|a| txn.get_external(a).unwrap().map(Into::into)), - replacement in libpijul/src/change.rs at line 1197
const LEVEL: usize = 1;const LEVEL: usize = 10; - replacement in libpijul/src/change.rs at line 1201
fn compress<W: Write>(input: &[u8], mut w: W) -> Result<(), ChangeError> {fn compress(input: &[u8], w: &mut Vec<u8>) -> Result<(), ChangeError> { - edit in libpijul/src/change.rs at line 1353
- replacement in libpijul/src/change/text_changes.rs at line 326
&change_contents[add.start.0 as usize + 2..add.end.0 as usize],&change_contents[add.start.us() + 2..add.end.us()], - replacement in libpijul/src/change/text_changes.rs at line 330
&change_contents[add.start.0 as usize..add.start.0 as usize + 2],&change_contents[add.start.us()..add.start.us() + 2], - replacement in libpijul/src/change/text_changes.rs at line 401
&change_contents[n.start.0 as usize + 2..n.end.0 as usize],&change_contents[n.start.us() + 2..n.end.us()], - replacement in libpijul/src/change/text_changes.rs at line 405
&change_contents[n.start.0 as usize..n.start.0 as usize + 2],&change_contents[n.start.us()..n.start.us() + 2], - replacement in libpijul/src/change/text_changes.rs at line 429
let c = &change_contents[n.start.0 as usize..n.end.0 as usize];let c = &change_contents[n.start.us()..n.end.us()]; - replacement in libpijul/src/change/text_changes.rs at line 561
add_name.start = ChangePosition(contents_.len() as u64);add_name.start = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 581
add_name.end = ChangePosition(contents_.len() as u64);add_name.end = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 587
pos: ChangePosition(contents_.len() as u64),pos: ChangePosition(contents_.len().into()), - replacement in libpijul/src/change/text_changes.rs at line 591
add_inode.start = ChangePosition(contents_.len() as u64);add_inode.end = ChangePosition(contents_.len() as u64);add_inode.start = ChangePosition(contents_.len().into());add_inode.end = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 699
add.start = ChangePosition(contents_.len() as u64);add.start = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 711
add.end = ChangePosition(contents_.len() as u64);add.end = ChangePosition(contents_.len().into()); - edit in libpijul/src/change/text_changes.rs at line 794
// The `-1` here comes from the extra 0// padding bytes pushed onto `contents_`. - replacement in libpijul/src/change/text_changes.rs at line 798
pos: ChangePosition(contents_.len() as u64 - 1),pos: ChangePosition((contents_.len() - 1).into()), - replacement in libpijul/src/change/text_changes.rs at line 803
v.start = ChangePosition(contents_.len() as u64);v.start = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 814
if contents_[c.end.0 as usize - 1] == b'\n' {assert_eq!(c.end.0 as usize, contents_.len());if contents_[c.end.us() - 1] == b'\n' {assert_eq!(c.end.us(), contents_.len()); - replacement in libpijul/src/change/text_changes.rs at line 918
change.start = ChangePosition(contents_.len() as u64);change.start = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 925
&& contents_[change.end.0 as usize - 1] == b'\n'&& contents_[change.end.us() - 1] == b'\n' - replacement in libpijul/src/change/text_changes.rs at line 927
assert_eq!(change.end.0 as usize, contents_.len());assert_eq!(change.end.us(), contents_.len()); - replacement in libpijul/src/change/text_changes.rs at line 956
repl.start = ChangePosition(contents_.len() as u64);repl.start = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 962
if repl.end > repl.start && contents_[repl.end.0 as usize - 1] == b'\n'if repl.end > repl.start && contents_[repl.end.us() - 1] == b'\n' - replacement in libpijul/src/change/text_changes.rs at line 964
assert_eq!(repl.end.0 as usize, contents_.len());assert_eq!(repl.end.us(), contents_.len()); - replacement in libpijul/src/change/text_changes.rs at line 999
change.start = ChangePosition(contents_.len() as u64);change.start = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 1014
change.start = ChangePosition(contents_.len() as u64);change.start = ChangePosition(contents_.len().into()); - replacement in libpijul/src/change/text_changes.rs at line 1016
ChangePosition(contents_.len() as u64 + new_end - new_start);ChangePosition((contents_.len() as u64 + new_end - new_start).into()); - replacement in libpijul/src/change/text_changes.rs at line 1057
start: ChangePosition(0),end: ChangePosition(0),start: ChangePosition(L64(0)),end: ChangePosition(L64(0)), - replacement in libpijul/src/change/text_changes.rs at line 1064
pos: ChangePosition(0),pos: ChangePosition(L64(0)), - replacement in libpijul/src/change/text_changes.rs at line 1074
pos: ChangePosition(0),pos: ChangePosition(L64(0)), - replacement in libpijul/src/change/text_changes.rs at line 1103
ChangePosition(pos)ChangePosition(L64(pos.to_le())) - replacement in libpijul/src/change/text_changes.rs at line 1135
pos: ChangePosition(pos),pos: ChangePosition(L64(pos.to_le())), - replacement in libpijul/src/change/text_changes.rs at line 1161
pos: ChangePosition(pos0),pos: ChangePosition(L64(pos0.to_le())), - replacement in libpijul/src/change/text_changes.rs at line 1165
start: ChangePosition(start1),end: ChangePosition(end1),start: ChangePosition(L64(start1.to_le())),end: ChangePosition(L64(end1.to_le())), - replacement in libpijul/src/change/text_changes.rs at line 1190
change.end = ChangePosition(contents_.len() as u64);change.end = ChangePosition(contents_.len().into()); - edit in libpijul/src/change/text_changes.rs at line 1207
impl WriteChangeLine for &mut std::io::Stderr {}impl WriteChangeLine for &mut std::io::Stdout {} - replacement in libpijul/src/change/text_changes.rs at line 1238
let c = &change_contents[n.start.0 as usize..n.end.0 as usize];let c = &change_contents[n.start.us()..n.end.us()]; - replacement in libpijul/src/apply.rs at line 85
hash: Hash,hash: &Hash, - replacement in libpijul/src/apply.rs at line 93
for &hash in change.dependencies.iter() {for hash in change.dependencies.iter() { - replacement in libpijul/src/apply.rs at line 97
if let Some(int) = txn.get_internal(hash)? {if let Some(int) = txn.get_internal(&hash.into())? { - replacement in libpijul/src/apply.rs at line 102
return Err((LocalApplyError::DependencyMissing { hash }).into());return Err((LocalApplyError::DependencyMissing { hash: *hash }).into()); - replacement in libpijul/src/apply.rs at line 105
let internal = if let Some(p) = txn.get_internal(hash)? {let internal = if let Some(&p) = txn.get_internal(&hash.into())? { - replacement in libpijul/src/apply.rs at line 109
register_change(txn, internal, hash, &change)?;register_change(txn, &internal, hash, &change)?; - replacement in libpijul/src/apply.rs at line 127
hash: Hash,hash: &Hash, - replacement in libpijul/src/apply.rs at line 135
let mut dep_stack = vec![(hash, true, !deps_only)];let mut dep_stack = vec![(*hash, true, !deps_only)]; - edit in libpijul/src/apply.rs at line 139
let shash: SerializedHash = (&hash).into(); - replacement in libpijul/src/apply.rs at line 144
if let Some(change_id) = txn.get_internal(hash)? {if let Some(change_id) = txn.get_internal(&shash)? { - replacement in libpijul/src/apply.rs at line 161
let applied = if let Some(int) = txn.get_internal(hash)? {let applied = if let Some(int) = txn.get_internal(&shash)? { - replacement in libpijul/src/apply.rs at line 167
let internal = if let Some(p) = txn.get_internal(hash)? {let internal = if let Some(&p) = txn.get_internal(&shash)? { - replacement in libpijul/src/apply.rs at line 171
register_change(txn, internal, hash, &change)?;register_change(txn, &internal, &hash, &change)?; - replacement in libpijul/src/apply.rs at line 188
hash: Hash,hash: &Hash, - replacement in libpijul/src/apply.rs at line 198
hash: Hash,hash: &Hash, - edit in libpijul/src/apply.rs at line 221
debug!("apply_change_to_channel {:?} {:?}", change_id, hash); - replacement in libpijul/src/apply.rs at line 309
hash: Hash,hash: &Hash, - replacement in libpijul/src/apply.rs at line 314
let internal: ChangeId = make_changeid(txn, &hash)?;let internal: ChangeId = make_changeid(txn, hash)?;debug!("make_changeid {:?} {:?}", hash, internal); - replacement in libpijul/src/apply.rs at line 317
for &hash in change.dependencies.iter() {for hash in change.dependencies.iter() { - replacement in libpijul/src/apply.rs at line 321
if let Some(int) = txn.get_internal(hash)? {if let Some(int) = txn.get_internal(&hash.into())? { - replacement in libpijul/src/apply.rs at line 326
return Err((LocalApplyError::DependencyMissing { hash }).into());return Err((LocalApplyError::DependencyMissing { hash: *hash }).into()); - replacement in libpijul/src/apply.rs at line 329
register_change(txn, internal, hash, &change)?;register_change(txn, &internal, hash, &change)?; - replacement in libpijul/src/apply.rs at line 347
hash: Hash,hash: &Hash, - replacement in libpijul/src/apply.rs at line 374
.get_graph(txn.graph(channel), vertex.inode_vertex(), None)?.get_graph(txn.graph(channel), &vertex.inode_vertex(), None)? - replacement in libpijul/src/apply.rs at line 378
put_inodes_with_rev(txn, inode, vertex)?;put_inodes_with_rev(txn, &inode, &vertex)?; - replacement in libpijul/src/apply.rs at line 384
if let Some(parent) = txn.get_revtree(inode, None)?.map(|x| x.to_owned()) {del_tree_with_rev(txn, parent.as_file_id(), inode)?;if let Some(parent) = txn.get_revtree(&inode, None)?.map(|x| x.to_owned()) {del_tree_with_rev(txn, &parent, &inode)?; - replacement in libpijul/src/apply.rs at line 389
(OwnedPathId {parent_inode: inode,basename: crate::small_string::SmallString::new(),}).as_file_id(),Some(inode),&OwnedPathId::inode(inode),Some(&inode), - replacement in libpijul/src/apply.rs at line 392
if let Some(vertex) = txn.get_inodes(inode, None)? {del_inodes_with_rev(txn, inode, vertex)?;if let Some(&vertex) = txn.get_inodes(&inode, None)? {del_inodes_with_rev(txn, &inode, &vertex)?; - replacement in libpijul/src/apply.rs at line 479
let k = txn.find_block_end(graph, up)?;let k = *txn.find_block_end(graph, up)?; - replacement in libpijul/src/apply.rs at line 487
txn.split_block(graph, k, up.pos, &mut ws.adjbuf)?txn.split_block(graph, &k, up.pos, &mut ws.adjbuf)? - replacement in libpijul/src/apply.rs at line 501
is_non_folder |= parent.flag & (EdgeFlags::PARENT | EdgeFlags::FOLDER) == EdgeFlags::PARENT;is_non_folder |= parent.flag() & (EdgeFlags::PARENT | EdgeFlags::FOLDER) == EdgeFlags::PARENT; - replacement in libpijul/src/apply.rs at line 503
.flag.flag() - replacement in libpijul/src/apply.rs at line 506
let introduced_by = txn.get_external(parent.introduced_by)?.unwrap();let introduced_by = txn.get_external(&parent.introduced_by())?.unwrap().into(); - replacement in libpijul/src/apply.rs at line 508
ws.deleted_by.insert(parent.introduced_by);ws.deleted_by.insert(parent.introduced_by()); - replacement in libpijul/src/apply.rs at line 523
let k = txn.find_block(&graph, down)?;let k = *txn.find_block(&graph, down)?; - replacement in libpijul/src/apply.rs at line 530
txn.split_block(graph, k, down.pos, &mut ws.adjbuf)?txn.split_block(graph, &k, down.pos, &mut ws.adjbuf)? - replacement in libpijul/src/apply.rs at line 544[18.129585]→[18.19296:19378](∅→∅),[18.69437]→[18.19296:19378](∅→∅),[18.19378]→[18.69437:69509](∅→∅),[18.69437]→[18.69437:69509](∅→∅),[18.69509]→[18.960555:960613](∅→∅),[18.960555]→[18.960555:960613](∅→∅),[18.960613]→[18.129586:129672](∅→∅)
is_folder |= parent.flag.contains(EdgeFlags::PARENT | EdgeFlags::FOLDER);if parent.flag.contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {if parent.flag.contains(EdgeFlags::DELETED) {let introduced_by = txn.get_external(parent.introduced_by)?.unwrap();is_folder |= parent.flag().contains(EdgeFlags::PARENT | EdgeFlags::FOLDER);if parent.flag().contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {if parent.flag().contains(EdgeFlags::DELETED) {let introduced_by = txn.get_external(&parent.introduced_by())?.unwrap().into(); - replacement in libpijul/src/apply.rs at line 549
ws.deleted_by.insert(parent.introduced_by);ws.deleted_by.insert(parent.introduced_by()); - replacement in libpijul/src/apply.rs at line 562
pseudo: Vec<(Vertex<ChangeId>, Edge, Position<Option<Hash>>)>,pseudo: Vec<(Vertex<ChangeId>, SerializedEdge, Position<Option<Hash>>)>, - replacement in libpijul/src/apply.rs at line 568
adjbuf: Vec<Edge>,adjbuf: Vec<SerializedEdge>, - replacement in libpijul/src/apply.rs at line 644
txn.split_block(graph, target, n.to.end, &mut ws.adjbuf)?;txn.split_block(graph, &target, n.to.end, &mut ws.adjbuf)?; - replacement in libpijul/src/apply.rs at line 671
target = txntarget = *txn - replacement in libpijul/src/apply.rs at line 689
let mut source = txn.find_block_end(&channel, internal_pos(txn, &from, change)?)?;let mut source = *txn.find_block_end(&channel, internal_pos(txn, &from, change)?)?; - replacement in libpijul/src/apply.rs at line 694
txn.split_block(channel, source, from.pos, &mut ws.adjbuf)?;txn.split_block(channel, &source, from.pos, &mut ws.adjbuf)?; - replacement in libpijul/src/apply.rs at line 711
let mut target = txn.find_block(channel, to_pos)?;let mut target = *txn.find_block(channel, to_pos)?; - replacement in libpijul/src/apply.rs at line 716
txn.split_block(channel, target, to.start, &mut ws.adjbuf)?;txn.split_block(channel, &target, to.start, &mut ws.adjbuf)?; - replacement in libpijul/src/apply.rs at line 738[18.969041]→[4.0:49](∅→∅),[4.49]→[18.969090:969142](∅→∅),[18.396]→[18.969090:969142](∅→∅),[18.969090]→[18.969090:969142](∅→∅),[18.969142]→[18.66287:66349](∅→∅)
if !e.flag.contains(EdgeFlags::FOLDER) {if e.flag.contains(EdgeFlags::PARENT) {let p = txn.find_block_end(channel, e.dest)?;if !e.flag().contains(EdgeFlags::FOLDER) {if e.flag().contains(EdgeFlags::PARENT) {let p = txn.find_block_end(channel, e.dest())?; - replacement in libpijul/src/apply.rs at line 742[18.70514]→[18.969250:969295](∅→∅),[18.131727]→[18.969250:969295](∅→∅),[18.969250]→[18.969250:969295](∅→∅)
apply.parents.insert(p);apply.parents.insert(*p); - replacement in libpijul/src/apply.rs at line 745
let p = txn.find_block(channel, e.dest)?;if e.flag.contains(EdgeFlags::BLOCK)let p = txn.find_block(channel, e.dest())?;if e.flag().contains(EdgeFlags::BLOCK) - replacement in libpijul/src/apply.rs at line 750
apply.children.insert(p);apply.children.insert(*p); - replacement in libpijul/src/apply.rs at line 754
if e.flag.contains(EdgeFlags::PSEUDO) {apply.pseudo.push((v, e, inode));if e.flag().contains(EdgeFlags::PSEUDO) {apply.pseudo.push((v, *e, inode)); - replacement in libpijul/src/apply.rs at line 792
debug_assert!(is_alive(txn, channel, p).unwrap());debug_assert!(is_alive(txn, channel, &p).unwrap()); - replacement in libpijul/src/apply.rs at line 795
debug_assert!(is_alive(txn, channel, c).unwrap());debug_assert!(is_alive(txn, channel, &c).unwrap()); - replacement in libpijul/src/apply.rs at line 810
let (a, b) = if p.flag.is_parent() {if let Ok(dest) = txn.find_block_end(channel, p.dest) {let (a, b) = if p.flag().is_parent() {if let Ok(&dest) = txn.find_block_end(channel, p.dest()) { - replacement in libpijul/src/apply.rs at line 816
} else if let Ok(dest) = txn.find_block(channel, p.dest) {} else if let Ok(&dest) = txn.find_block(channel, p.dest()) { - replacement in libpijul/src/apply.rs at line 821
let a_is_alive = is_alive(txn, channel, a)?;let b_is_alive = is_alive(txn, channel, b)?;let a_is_alive = is_alive(txn, channel, &a)?;let b_is_alive = is_alive(txn, channel, &b)?; - replacement in libpijul/src/apply.rs at line 828
a, b, p.introduced_by, p.flaga, b, p.introduced_by(), p.flag() - replacement in libpijul/src/apply.rs at line 833
p.flag - EdgeFlags::PARENT,p.flag() - EdgeFlags::PARENT, - replacement in libpijul/src/apply.rs at line 836
p.introduced_by,p.introduced_by(), - replacement in libpijul/src/apply.rs at line 850
} else if b_is_alive && !p.flag.is_folder() {} else if b_is_alive && !p.flag().is_folder() { - replacement in libpijul/src/apply.rs at line 909[18.22391]→[18.66705:66788](∅→∅),[18.66788]→[18.132761:132803](∅→∅),[18.22475]→[18.132761:132803](∅→∅)
let up = txn.find_block_end(channel, internal_pos(txn, &up, change_id)?)?;if !is_alive(txn, channel, up)? {let up = *txn.find_block_end(channel, internal_pos(txn, &up, change_id)?)?;if !is_alive(txn, channel, &up)? { - replacement in libpijul/src/apply.rs at line 940
let down = txn.find_block(channel, internal_pos(txn, &down, change_id)?)?;let down = *txn.find_block(channel, internal_pos(txn, &down, change_id)?)?; - replacement in libpijul/src/apply.rs at line 949
if e.introduced_by != change_id {if e.introduced_by() != change_id { - replacement in libpijul/src/apply.rs at line 1024
let dest = ee.dest.inode_vertex();let dest = ee.dest().inode_vertex(); - replacement in libpijul/src/apply.rs at line 1065
if parent.flag.is_parent() {let anc = txn.find_block_end(channel, parent.dest)?;if parent.flag().is_parent() {let anc = txn.find_block_end(channel, parent.dest())?; - replacement in libpijul/src/apply.rs at line 1071
anc,*anc, - replacement in libpijul/src/apply.rs at line 1082
debug!("al = {:?}, flag = {:?}", al, parent.flag);stack.push((anc, false, parent.flag.is_deleted(), al));debug!("al = {:?}, flag = {:?}", al, parent.flag());stack.push((*anc, false, parent.flag().is_deleted(), al)); - replacement in libpijul/src/apply.rs at line 1122
if e.flag.contains(EdgeFlags::PARENT) {if e.flag & (EdgeFlags::FOLDER | EdgeFlags::DELETED) == EdgeFlags::FOLDER {if e.flag().contains(EdgeFlags::PARENT) {if e.flag() & (EdgeFlags::FOLDER | EdgeFlags::DELETED) == EdgeFlags::FOLDER { - replacement in libpijul/src/apply.rs at line 1127
} else if !e.flag.is_deleted() {} else if !e.flag().is_deleted() { - replacement in libpijul/src/apply.rs at line 1176
stack.push(txn.find_block_end(channel, parent.dest)?)stack.push(*txn.find_block_end(channel, parent.dest())?) - replacement in libpijul/src/alive/retrieve.rs at line 43
let dest_vid = match cache.entry(e.dest) {let dest_vid = match cache.entry(e.dest()) { - replacement in libpijul/src/alive/retrieve.rs at line 45
if let Some(alive) = new_vertex(txn, channel, e.dest)? {if let Some(alive) = new_vertex(txn, channel, e.dest())? { - replacement in libpijul/src/alive/retrieve.rs at line 58
assert_ne!(graph[vid].vertex.start_pos(), e.dest);assert_ne!(graph[vid].vertex.start_pos(), e.dest()); - replacement in libpijul/src/alive/retrieve.rs at line 60
graph.children.push((Some(e), dest_vid));graph.children.push((Some(*e), dest_vid)); - replacement in libpijul/src/alive/retrieve.rs at line 75[18.134666]→[18.67035:67089](∅→∅),[18.67089]→[18.134738:134778](∅→∅),[18.134738]→[18.134738:134778](∅→∅)
let vertex = txn.find_block(graph, pos).unwrap();if !is_alive(txn, graph, vertex)? {let vertex = *txn.find_block(graph, pos).unwrap();if !is_alive(txn, graph, &vertex)? { - replacement in libpijul/src/alive/retrieve.rs at line 89
.flag.flag() - replacement in libpijul/src/alive/retrieve.rs at line 119
let dest = txn.find_block(channel, edge.dest).unwrap();let dest = *txn.find_block(channel, edge.dest()).unwrap(); - replacement in libpijul/src/alive/retrieve.rs at line 121
del_graph_with_rev(txn, channel, edge.flag, vertex, dest, edge.introduced_by)?;del_graph_with_rev(txn, channel, edge.flag(), vertex, dest, edge.introduced_by())?; - replacement in libpijul/src/alive/output.rs at line 101
let mut min: Option<u64> = None;let mut min: Option<L64> = None; - replacement in libpijul/src/alive/output.rs at line 104
txn.get_changeset(txn.changes(&channel), graph[*x].vertex.change)?txn.get_changeset(txn.changes(&channel), &graph[*x].vertex.change)? - replacement in libpijul/src/alive/output.rs at line 107
*m = (*m).min(t)*m = (*m).min(*t) - replacement in libpijul/src/alive/output.rs at line 109
min = Some(t)min = Some(*t) - replacement in libpijul/src/alive/output.rs at line 121
Ok(min.unwrap())Ok(u64::from_le(min.unwrap().0)) - replacement in libpijul/src/alive/output.rs at line 163
.get_contents(|p| txn.get_external(p).unwrap(), vertex, buf).get_contents(|p| txn.get_external(&p).unwrap().map(|x| x.into()), vertex, buf) - replacement in libpijul/src/alive/output.rs at line 192
forward: &mut Vec<(Vertex<ChangeId>, Edge)>,forward: &mut Vec<(Vertex<ChangeId>, SerializedEdge)>, - replacement in libpijul/src/alive/mod.rs at line 1
use crate::pristine::{ChangeId, Edge, Vertex};use crate::pristine::{ChangeId, SerializedEdge, Vertex}; - replacement in libpijul/src/alive/mod.rs at line 51
children: Vec<(Option<Edge>, VertexId)>,children: Vec<(Option<SerializedEdge>, VertexId)>, - replacement in libpijul/src/alive/mod.rs at line 77
pub(crate) fn children(&self, i: VertexId) -> &[(Option<Edge>, VertexId)] {pub(crate) fn children(&self, i: VertexId) -> &[(Option<SerializedEdge>, VertexId)] { - replacement in libpijul/src/alive/mod.rs at line 82
fn child(&self, i: VertexId, j: usize) -> &(Option<Edge>, VertexId) {fn child(&self, i: VertexId, j: usize) -> &(Option<SerializedEdge>, VertexId) { - replacement in libpijul/src/alive/dfs.rs at line 79
change: ChangeId(1),start: ChangePosition(0),end: ChangePosition(1)change: ChangeId(1u64.into()),start: ChangePosition(0u64.into()),end: ChangePosition(1u64.into()) - replacement in libpijul/src/alive/dfs.rs at line 96
graph.lines[i].vertex.change = ChangeId(i as u64);graph.lines[i].vertex.change = ChangeId((i as u64).into()); - replacement in libpijul/src/alive/dfs.rs at line 120
Some(Edge {Some((Edge { - replacement in libpijul/src/alive/dfs.rs at line 123
introduced_by: ChangeId(4165),}),introduced_by: ChangeId(4165u64.into()),}).into()), - replacement in libpijul/src/alive/dfs.rs at line 365
forward: &mut Vec<(Vertex<ChangeId>, Edge)>,forward: &mut Vec<(Vertex<ChangeId>, SerializedEdge)>, - replacement in libpijul/src/alive/dfs.rs at line 374
if edge.flag.contains(EdgeFlags::PSEUDO)if edge.flag().contains(EdgeFlags::PSEUDO) - replacement in libpijul/src/alive/dfs.rs at line 382
edge.dest,edge.dest(), - replacement in libpijul/src/alive/debug.rs at line 36
.get_contents(|h| txn.get_external(h).unwrap(), line.vertex, &mut buf).get_contents(|h| txn.get_external(&h).unwrap().map(|x| x.into()), line.vertex, &mut buf) - replacement in libpijul/src/alive/debug.rs at line 65[18.67642]→[18.1016807:1016868](∅→∅),[18.138322]→[18.1016807:1016868](∅→∅),[18.1016807]→[18.1016807:1016868](∅→∅)
if let Some(dest) = cache.get(&v.dest) {if let Some(dest) = cache.get(&v.dest()) { - replacement in libpijul/src/alive/debug.rs at line 71
v.flag.bits(),v.flag().bits(), - replacement in libpijul/src/alive/debug.rs at line 74
v.introduced_by.to_base32()v.introduced_by().to_base32() - replacement in libpijul/src/alive/debug.rs at line 80
if !others.contains(&v.dest) {others.insert(v.dest);if !others.contains(&v.dest()) {others.insert(v.dest()); - replacement in libpijul/src/alive/debug.rs at line 85
v.dest.change.to_base32(),v.dest.pos.0,v.dest.change.to_base32(),v.dest.pos.0v.dest().change.to_base32(),v.dest().pos.0,v.dest().change.to_base32(),v.dest().pos.0 - replacement in libpijul/src/alive/debug.rs at line 95
v.dest.change.to_base32(),v.dest.pos.0,v.flag.bits(),v.dest().change.to_base32(),v.dest().pos.0,v.flag().bits(), - replacement in libpijul/src/alive/debug.rs at line 100
v.introduced_by.to_base32()v.introduced_by().to_base32() - replacement in libpijul/src/alive/debug.rs at line 117
edge.flag.bits(),edge.flag().bits(), - replacement in libpijul/src/alive/debug.rs at line 120
edge.introduced_by.to_base32()edge.introduced_by().to_base32() - replacement in libpijul/src/alive/debug.rs at line 159
edge.flag.bits(),edge.introduced_by.to_base32()edge.flag().bits(),edge.introduced_by().to_base32() - replacement in libpijul/Cargo.toml at line 97
sanakirja = { version = "0.15.8", features = [ "crc32" ] }sanakirja = "1.1.2" - replacement in Cargo.lock at line 64
version = "0.3.55"version = "0.3.56" - replacement in Cargo.lock at line 66
checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598"checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc" - replacement in Cargo.lock at line 84
version = "1.3.1"version = "1.3.2" - replacement in Cargo.lock at line 86
checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d"checksum = "d175dfa69e619905c4c3cdb7c3c203fa3bdd5d51184e3afdb2742c0280493772" - replacement in Cargo.lock at line 132
version = "0.2.14"version = "0.2.15" - replacement in Cargo.lock at line 134
checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf"checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d" - replacement in Cargo.lock at line 141
version = "3.4.0"version = "3.6.1" - replacement in Cargo.lock at line 143
checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" - replacement in Cargo.lock at line 147
version = "1.4.2"version = "1.3.4" - replacement in Cargo.lock at line 149
checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" - replacement in Cargo.lock at line 165
version = "1.0.66"version = "1.0.67" - replacement in Cargo.lock at line 167
checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" - replacement in Cargo.lock at line 278
version = "0.8.1"version = "0.8.2" - replacement in Cargo.lock at line 280
checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"checksum = "bae8f328835f8f5a6ceb6a7842a7f2d0c03692adb5c889347235d59194731fe3" - edit in Cargo.lock at line 285
"loom", - replacement in Cargo.lock at line 310
version = "3.1.7"version = "3.1.8" - replacement in Cargo.lock at line 312
checksum = "b57a92e9749e10f25a171adcebfafe72991d45e7ec2dcb853e8f83d9dafaeb08"checksum = "c15b8ec3b5755a188c141c1f6a98e76de31b936209bf066b647979e2a84764a9" - replacement in Cargo.lock at line 334
version = "2.3.1"version = "2.3.2" - replacement in Cargo.lock at line 336
checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908"checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" - replacement in Cargo.lock at line 340
version = "0.4.0"version = "0.4.1" - replacement in Cargo.lock at line 342
checksum = "bb4e4582f27b475e229dc0926b12082a6fb8662c7cb25ed1465243486fe181a2"checksum = "a8117b4111dc8d9e88d92ec2ee1cda48318af35c3e6b4f8599add5048189971d" - replacement in Cargo.lock at line 412
version = "0.8.26"version = "0.8.28" - replacement in Cargo.lock at line 414
checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283"checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" - replacement in Cargo.lock at line 421
version = "0.8.2"version = "0.8.3" - replacement in Cargo.lock at line 423
checksum = "f26ecb66b4bdca6c1409b40fb255eefc2bd4f6d135dab3c3124f80ffa2a9661e"checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f" - replacement in Cargo.lock at line 455
version = "0.2.13"version = "0.2.14" - replacement in Cargo.lock at line 457
checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe"checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" - replacement in Cargo.lock at line 461
"redox_syscall 0.1.57","redox_syscall 0.2.5", - replacement in Cargo.lock at line 467
version = "1.0.19"version = "1.0.20" - replacement in Cargo.lock at line 469
checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" - replacement in Cargo.lock at line 500
version = "1.0.0"version = "1.0.1" - replacement in Cargo.lock at line 502
checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" - replacement in Cargo.lock at line 520
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 522
checksum = "309f13e3f4be6d5917178c84db67c0b9a09177ac16d4f9a7313a767a68adaa77"checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1" - replacement in Cargo.lock at line 535
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 537
checksum = "7a3b03bd32f6ec7885edeb99acd1e47e20e34fd4dfd3c6deed6fcac8a9d28f6a"checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" - replacement in Cargo.lock at line 545
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 547
checksum = "ed8aeae2b6ab243ebabe6f54cd4cf53054d98883d5d326128af7d57a9ca5cd3d"checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" - replacement in Cargo.lock at line 551
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 553
checksum = "3f7836b36b7533d16fd5937311d98ba8965ab81030de8b0024c299dd5d51fb9b"checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1" - replacement in Cargo.lock at line 562
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 564
checksum = "d41234e71d5e8ca73d01563974ef6f50e516d71e18f1a2f1184742e31f5d469f"checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59" - replacement in Cargo.lock at line 568
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 570
checksum = "3520e0eb4e704e88d771b92d51273ee212997f0d8282f17f5d8ff1cb39104e42"checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7" - replacement in Cargo.lock at line 580
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 582
checksum = "c72d188479368953c6c8c7140e40d7a4401674ab3b98a41e60e515d6cbdbe5de"checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" - replacement in Cargo.lock at line 586
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 588[18.1046708]→[18.17699:17777](∅→∅),[18.1248]→[18.1046786:1046819](∅→∅),[18.17777]→[18.1046786:1046819](∅→∅),[18.1046786]→[18.1046786:1046819](∅→∅)
checksum = "08944cea9021170d383287169859c0ca8147d9ec285978393109954448f33cc7"dependencies = ["once_cell",]checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" - replacement in Cargo.lock at line 592
version = "0.3.10"version = "0.3.13" - replacement in Cargo.lock at line 594
checksum = "d3dd206efbe2ca683b2ce138ccdf61e1b0a63f5816dcedc9d8654c500ba0cea6"checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" - edit in Cargo.lock at line 617
name = "generator"version = "0.6.24"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a9fed24fd1e18827652b4d55652899a1e9da8e54d91624dc3437a5bc3a9f9a9c"dependencies = ["cc","libc","log","rustversion","winapi",][[package]] - replacement in Cargo.lock at line 652
version = "0.2.1"version = "0.2.2" - replacement in Cargo.lock at line 654
checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6"checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" - replacement in Cargo.lock at line 658
"wasi 0.10.1+wasi-snapshot-preview1","wasi 0.10.2+wasi-snapshot-preview1", - replacement in Cargo.lock at line 669
version = "0.13.15"version = "0.13.17" - replacement in Cargo.lock at line 671
checksum = "44f267c9da8a4de3c615b59e23606c75f164f84896e97f4dd6c15a4294de4359"checksum = "1d250f5f82326884bd39c2853577e70a121775db76818ffa452ed1e80de12986" - replacement in Cargo.lock at line 732
version = "0.1.17"version = "0.1.18" - replacement in Cargo.lock at line 734
checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" - replacement in Cargo.lock at line 762
version = "1.3.4"version = "1.3.5" - replacement in Cargo.lock at line 764
checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691" - replacement in Cargo.lock at line 795
version = "0.14.2"version = "0.14.4" - replacement in Cargo.lock at line 797
checksum = "12219dc884514cb4a6a03737f4413c0e01c23a1b059b0156004b23f1e19dccbe"checksum = "e8e946c2b1349055e0b72ae281b238baf1a3ea7307c7e9f9d64673bdd9c26ac7" - replacement in Cargo.lock at line 809
"pin-project 1.0.4","pin-project", - replacement in Cargo.lock at line 832
version = "0.2.0"version = "0.2.2" - replacement in Cargo.lock at line 834
checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21" - replacement in Cargo.lock at line 913
version = "0.3.46"version = "0.3.47" - replacement in Cargo.lock at line 915
checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175"checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65" - replacement in Cargo.lock at line 928
version = "0.2.82"version = "0.2.86" - replacement in Cargo.lock at line 930
checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929"checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c" - replacement in Cargo.lock at line 934
version = "0.12.17+1.1.0"version = "0.12.18+1.1.0" - replacement in Cargo.lock at line 936
checksum = "f4ebdf65ca745126df8824688637aa0535a88900b83362d8ca63893bcf4e8841"checksum = "3da6a42da88fc37ee1ecda212ffa254c25713532980005d5f7c0b0fbe7e6e885" - replacement in Cargo.lock at line 993
version = "0.2.20"version = "0.2.21" - replacement in Cargo.lock at line 995
checksum = "df40b13fe7ea1be9b9dffa365a51273816c345fc1811478b57ed7d964fbfc4ce"checksum = "e0186af0d8f171ae6b9c4c90ec51898bad5d08a2d5e470903a50d9ad8959cbee" - replacement in Cargo.lock at line 1034
version = "0.4.13"version = "0.4.14"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"dependencies = ["cfg-if 1.0.0",][[package]]name = "loom"version = "0.4.0" - replacement in Cargo.lock at line 1045
checksum = "fcf3805d4480bb5b86070dcfeb9e2cb2ebc148adb753c5cca5f884d1d65a42b2"checksum = "d44c73b4636e497b4917eb21c33539efa3816741a2d3ff26c6316f1b529481a4" - replacement in Cargo.lock at line 1047
"cfg-if 0.1.10","cfg-if 1.0.0","generator","scoped-tls", - replacement in Cargo.lock at line 1101
version = "0.7.7"version = "0.7.9" - replacement in Cargo.lock at line 1103
checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7"checksum = "a5dede4e2065b3842b8b0af444119f3aa331cc7cc2dd20388bfb0f5d5a38823a" - replacement in Cargo.lock at line 1142
version = "0.18.0"version = "0.20.0" - replacement in Cargo.lock at line 1144
checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055"checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" - replacement in Cargo.lock at line 1148
"cfg-if 0.1.10","cfg-if 1.0.0", - replacement in Cargo.lock at line 1209
version = "0.22.0"version = "0.23.0" - replacement in Cargo.lock at line 1211
checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" - replacement in Cargo.lock at line 1215
version = "1.5.2"version = "1.7.0" - replacement in Cargo.lock at line 1217
checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"checksum = "10acf907b94fc1b1a152d08ef97e7759650268cf986bf127f387e602b02c7e5a" - replacement in Cargo.lock at line 1290
version = "0.8.2"version = "0.8.3" - replacement in Cargo.lock at line 1292
checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" - replacement in Cargo.lock at line 1297
"redox_syscall 0.1.57","redox_syscall 0.2.5", - replacement in Cargo.lock at line 1365[18.1064689]→[18.1064689:1064936](∅→∅),[18.1064936]→[18.1907:1925](∅→∅),[18.182]→[18.1064954:1065019](∅→∅),[18.1122]→[18.1064954:1065019](∅→∅),[18.1925]→[18.1064954:1065019](∅→∅),[18.1064954]→[18.1064954:1065019](∅→∅),[18.1065019]→[18.1926:2004](∅→∅),[18.261]→[18.1065097:1065114](∅→∅),[18.1201]→[18.1065097:1065114](∅→∅),[18.2004]→[18.1065097:1065114](∅→∅),[18.1065097]→[18.1065097:1065114](∅→∅),[18.1065114]→[18.2005:2036](∅→∅),[18.293]→[18.1065145:1065209](∅→∅),[18.1233]→[18.1065145:1065209](∅→∅),[18.2036]→[18.1065145:1065209](∅→∅),[18.1065145]→[18.1065145:1065209](∅→∅)
version = "0.4.27"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"dependencies = ["pin-project-internal 0.4.27",][[package]]name = "pin-project"version = "1.0.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2"dependencies = ["pin-project-internal 1.0.4",][[package]]name = "pin-project-internal"version = "0.4.27"version = "1.0.5" - replacement in Cargo.lock at line 1367
checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"checksum = "96fa8ebb90271c4477f144354485b8068bd8f6b78b428b01ba892ca26caf0b63" - replacement in Cargo.lock at line 1369
"proc-macro2","quote","syn","pin-project-internal", - replacement in Cargo.lock at line 1374
version = "1.0.4"version = "1.0.5" - replacement in Cargo.lock at line 1376
checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71"checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b" - replacement in Cargo.lock at line 1454
version = "1.0.8"version = "1.0.9" - replacement in Cargo.lock at line 1456
checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" - replacement in Cargo.lock at line 1463
version = "0.8.2"version = "0.8.3" - replacement in Cargo.lock at line 1465
checksum = "18519b42a40024d661e1714153e9ad0c3de27cd495760ceb09710920f1098b1e"checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" - replacement in Cargo.lock at line 1469
"rand_core 0.6.1","rand_core 0.6.2", - replacement in Cargo.lock at line 1480
"rand_core 0.6.1","rand_core 0.6.2", - replacement in Cargo.lock at line 1494
version = "0.6.1"version = "0.6.2" - replacement in Cargo.lock at line 1496
checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5"checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" - replacement in Cargo.lock at line 1498
"getrandom 0.2.1","getrandom 0.2.2", - replacement in Cargo.lock at line 1507
"rand_core 0.6.1","rand_core 0.6.2", - replacement in Cargo.lock at line 1518
version = "0.2.4"version = "0.2.5" - replacement in Cargo.lock at line 1520
checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570"checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" - replacement in Cargo.lock at line 1542
"getrandom 0.2.1","redox_syscall 0.2.4","getrandom 0.2.2","redox_syscall 0.2.5", - replacement in Cargo.lock at line 1575
version = "0.11.0"version = "0.11.1" - replacement in Cargo.lock at line 1577
checksum = "fd281b1030aa675fb90aa994d07187645bb3c8fc756ca766e7c3070b439de9de"checksum = "0460542b551950620a3648c6aa23318ac6b3cd779114bd873209e6e8b5eb1c34" - replacement in Cargo.lock at line 1609
version = "5.0.0"version = "5.0.1" - replacement in Cargo.lock at line 1611
checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9"checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" - edit in Cargo.lock at line 1636
name = "rustversion"version = "1.0.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"[[package]] - replacement in Cargo.lock at line 1658
version = "0.15.8"version = "1.1.2" - replacement in Cargo.lock at line 1660
checksum = "3dc2f1481f4fd49edfc47d14f83d2b3b15c342d27adafd7b78488179ca7df27e"checksum = "d79085dae1bd13359b250c18ba037ff6f40bdaabf1abc88317f726e57287eb52" - replacement in Cargo.lock at line 1664
"git2","lazy_static", - replacement in Cargo.lock at line 1668
"rand","sanakirja-core", - edit in Cargo.lock at line 1670
][[package]]name = "sanakirja-core"version = "1.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a55d6fcfbb77ae7c8ebd0e7a100ea94f00e47dd302aa1b7216a1b72524cfdce0"dependencies = ["crc32fast", - edit in Cargo.lock at line 1690
[[package]]name = "scoped-tls"version = "1.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - replacement in Cargo.lock at line 1705
version = "2.0.0"version = "2.1.0" - replacement in Cargo.lock at line 1707
checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69"checksum = "c6af1b6204f89cf0069736daf8b852573e3bc34898eee600e95d3dd855c12e81" - replacement in Cargo.lock at line 1718
version = "2.0.0"version = "2.1.0" - replacement in Cargo.lock at line 1720
checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b"checksum = "31531d257baab426203cf81c5ce1b0b55159dda7ed602ac81b582ccd62265741" - replacement in Cargo.lock at line 1728
version = "1.0.119"version = "1.0.123" - replacement in Cargo.lock at line 1730
checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3"checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae" - replacement in Cargo.lock at line 1737
version = "1.0.119"version = "1.0.123" - replacement in Cargo.lock at line 1739
checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd"checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" - replacement in Cargo.lock at line 1748
version = "1.0.61"version = "1.0.62" - replacement in Cargo.lock at line 1750
checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a"checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486" - replacement in Cargo.lock at line 1815
version = "1.0.58"version = "1.0.60" - replacement in Cargo.lock at line 1817
checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5"checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" - replacement in Cargo.lock at line 1826
version = "0.4.30"version = "0.4.33" - replacement in Cargo.lock at line 1828
checksum = "489997b7557e9a43e192c527face4feacc78bfbe6eed67fd55c4c9e381cba290"checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228" - edit in Cargo.lock at line 1832
"redox_syscall 0.1.57", - replacement in Cargo.lock at line 1844
"redox_syscall 0.2.4","redox_syscall 0.2.5", - replacement in Cargo.lock at line 1860
version = "0.1.15"version = "0.1.16" - replacement in Cargo.lock at line 1862
checksum = "4bd2d183bd3fac5f5fe38ddbeb4dc9aec4a39a9d7d59e7491d900302da01cbe1"checksum = "86ca8ced750734db02076f44132d802af0b33b09942331f4459dde8636fd2406" - replacement in Cargo.lock at line 1879
version = "1.0.23"version = "1.0.24" - replacement in Cargo.lock at line 1881
checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" - replacement in Cargo.lock at line 1888
version = "1.0.23"version = "1.0.24" - replacement in Cargo.lock at line 1890
checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" - replacement in Cargo.lock at line 1899
version = "1.1.0"version = "1.1.3" - replacement in Cargo.lock at line 1901
checksum = "bb9bc092d0d51e76b2b19d9d85534ffc9ec2db959a2523cdae0697e2972cd447"checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" - replacement in Cargo.lock at line 1903
"lazy_static","once_cell", - replacement in Cargo.lock at line 1917
version = "0.32.4"version = "0.32.6" - replacement in Cargo.lock at line 1919
checksum = "d1fde6e64bc24109d09e43cb192df54d0d0d2b26d8d0d3e4b5fd7111b1a41141"checksum = "49ea1ae114bff83c24c862ef3d2d01e28fa524d6ac70a32c9ef01d5c7440f56f" - replacement in Cargo.lock at line 1945[18.1777]→[18.142883:142900](∅→∅),[18.3691]→[18.142883:142900](∅→∅),[18.1078575]→[18.142883:142900](∅→∅)
"whoami 1.0.3","whoami 1.1.0", - replacement in Cargo.lock at line 1997
version = "1.1.0"version = "1.1.1" - replacement in Cargo.lock at line 1999
checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023" - replacement in Cargo.lock at line 2012
version = "1.0.1"version = "1.2.0" - replacement in Cargo.lock at line 2014
checksum = "d258221f566b6c803c7b4714abadc080172b272090cdc5e244a6d4dd13c3a6bd"checksum = "e8190d04c665ea9e6b6a0dc45523ade572c088d2e6566244c1122671dbf4ae3a" - replacement in Cargo.lock at line 2031
version = "1.0.0"version = "1.1.0" - replacement in Cargo.lock at line 2033
checksum = "42517d2975ca3114b22a16192634e8241dc5cc1f130be194645970cc1c371494"checksum = "caf7b11a536f46a809a8a9f0bb4237020f70ecbf115b842360afb127ea2fda57" - edit in Cargo.lock at line 2051[18.2080]→[18.2080:2102](∅→∅),[18.2102]→[18.10129:10147](∅→∅),[18.10147]→[18.2120:2185](∅→∅),[18.2120]→[18.2120:2185](∅→∅),[18.2185]→[18.10148:10226](∅→∅),[18.10226]→[18.2263:2328](∅→∅),[18.2263]→[18.2263:2328](∅→∅),[18.2328]→[18.1080859:1080874](∅→∅),[18.4841]→[18.1080859:1080874](∅→∅),[18.1080859]→[18.1080859:1080874](∅→∅)
name = "tokio-stream"version = "0.1.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "76066865172052eb8796c686f0b441a93df8b08d40a950b062ffb9a426f00edd"dependencies = ["futures-core","pin-project-lite","tokio",][[package]] - replacement in Cargo.lock at line 2052
version = "0.6.1"version = "0.6.3" - replacement in Cargo.lock at line 2054
checksum = "12ae4751faa60b9f96dd8344d74592e5a17c0c9a220413dbc6942d14139bbfcc"checksum = "ebb7cb2f00c5ae8df755b252306272cd1790d39728363936e01827e11f0b017b" - edit in Cargo.lock at line 2062
"tokio-stream", - replacement in Cargo.lock at line 2075
version = "0.3.0"version = "0.3.1" - replacement in Cargo.lock at line 2077
checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" - replacement in Cargo.lock at line 2081
version = "0.1.22"version = "0.1.25" - replacement in Cargo.lock at line 2083
checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" - replacement in Cargo.lock at line 2101
version = "0.2.4"version = "0.2.5" - replacement in Cargo.lock at line 2103
checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" - replacement in Cargo.lock at line 2105
"pin-project 0.4.27","pin-project", - replacement in Cargo.lock at line 2132
version = "0.1.16"version = "0.1.17" - replacement in Cargo.lock at line 2134
checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" - replacement in Cargo.lock at line 2159
version = "2.2.0"version = "2.2.1" - replacement in Cargo.lock at line 2161
checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" - replacement in Cargo.lock at line 2175
"getrandom 0.2.1","getrandom 0.2.2", - replacement in Cargo.lock at line 2225
version = "0.10.1+wasi-snapshot-preview1"version = "0.10.2+wasi-snapshot-preview1" - replacement in Cargo.lock at line 2227
checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9"checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - replacement in Cargo.lock at line 2231
version = "0.2.69"version = "0.2.70" - replacement in Cargo.lock at line 2233
checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e"checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be" - replacement in Cargo.lock at line 2243
version = "0.2.69"version = "0.2.70" - replacement in Cargo.lock at line 2245
checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62"checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7" - replacement in Cargo.lock at line 2258
version = "0.4.19"version = "0.4.20" - replacement in Cargo.lock at line 2260
checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35"checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94" - replacement in Cargo.lock at line 2270
version = "0.2.69"version = "0.2.70" - replacement in Cargo.lock at line 2272
checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084"checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c" - replacement in Cargo.lock at line 2280
version = "0.2.69"version = "0.2.70" - replacement in Cargo.lock at line 2282
checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549"checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385" - replacement in Cargo.lock at line 2293
version = "0.2.69"version = "0.2.70" - replacement in Cargo.lock at line 2295
checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64" - replacement in Cargo.lock at line 2299
version = "0.3.46"version = "0.3.47" - replacement in Cargo.lock at line 2301
checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3"checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3" - replacement in Cargo.lock at line 2324
version = "1.0.3"version = "1.1.0" - replacement in Cargo.lock at line 2326
checksum = "d595b2e146f36183d6a590b8d41568e2bc84c922267f43baf61c956330eeb436"checksum = "1a921c0ad578a51c0b6c0bbb9b95f0ed11e90d61da506139e48a946edd11ee1e"