Fixing a bug in unrecord, and fixing the tests
[?]
Mar 3, 2021, 2:33 PM
X7OHUPL5VYT6ECER2KNGRNFLRX7SBZOM5QWSQ4PBO2UPIE7XM6MACDependencies
- [2]
CD6XDYOHFixing unrecord - [3]
IIV3EL2XCleanup, formatting, and fixing the Git feature - [4]
JACZYXK4Fixing a bug in unrecord - [5]
H23LO7U7a few more clippy lints addressed - [6]
I52XSRUHMassive cleanup, and simplification - [7]
VO5OQW4WRemoving anyhow in libpijul - [8]
6YMDOZIBRefactoring apply - [9]
YN63NUZOSanakirja 1.0 - [10]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump - [11]
7FFFKQZUadd 'Default' implementations - [12]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [13]
GHO6DWPIRefactoring iterators
Change contents
- replacement in libpijul/src/working_copy/memory.rs at line 73
let file_meta = InodeMetadata::new(0o644, false);let file_meta = InodeMetadata::new(0, false); - replacement in libpijul/src/working_copy/memory.rs at line 86
let file_meta = InodeMetadata::new(0o755, true);let file_meta = InodeMetadata::new(0o100, true); - replacement in libpijul/src/working_copy/memory.rs at line 112
meta: InodeMetadata::new(0o755, true),meta: InodeMetadata::new(0o100, true), - replacement in libpijul/src/working_copy/memory.rs at line 215
meta: InodeMetadata::new(0o755, true),meta: InodeMetadata::new(0o100, true), - replacement in libpijul/src/working_copy/memory.rs at line 266
*meta = InodeMetadata::new(permissions as usize, false);*meta = InodeMetadata::new(permissions as usize & 0o100, false); - replacement in libpijul/src/working_copy/memory.rs at line 269
*meta = InodeMetadata::new(permissions as usize, true);*meta = InodeMetadata::new(permissions as usize & 0o100, true); - replacement in libpijul/src/working_copy/memory.rs at line 294
meta: InodeMetadata::new(0o644, false),meta: InodeMetadata::new(0, false), - edit in libpijul/src/unrecord/mod.rs at line 517
debug!("repair_edges_context"); - edit in libpijul/src/unrecord/mod.rs at line 535
debug!("to = {:?}", to); - edit in libpijul/src/unrecord/mod.rs at line 537
debug!("not alive"); - edit in libpijul/src/unrecord/mod.rs at line 546
|h| changes.knows(&change_hash, &h).unwrap(), - replacement in libpijul/src/tests/performance.rs at line 54
let mut it = txn.iter_graph(&channel.graph).unwrap();let mut it = txn.iter_graph(&channel.graph, None).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 150
let mut it = txn.iter_graph(&channel.graph).unwrap();let mut it = txn.iter_graph(&channel.graph, None).unwrap(); - replacement in libpijul/src/tests/performance.rs at line 163
let mut it = txn.iter_graph(&channel.graph).unwrap();let mut it = txn.iter_graph(&channel.graph, None).unwrap(); - replacement in libpijul/src/tests/clone.rs at line 41
channel_changes.push(i)channel_changes.push(i.into()) - replacement in libpijul/src/tests/add_file.rs at line 309
assert_eq!(bob_perm.0, 0o644);assert_eq!(bob_perm.0, 0); - replacement in libpijul/src/tests/add_file.rs at line 323
assert_eq!(bob_perm.0, 0o755);assert_eq!(bob_perm.0, 0o100); - replacement in libpijul/src/tests/add_file.rs at line 325
assert_eq!(alice_perm.0, 0o755);assert_eq!(alice_perm.0, 0o100); - edit in libpijul/src/record.rs at line 11
use std::collections::{HashMap, HashSet}; - replacement in libpijul/src/missing_context.rs at line 154
pub(crate) fn repair_context_nondeleted<T: GraphMutTxnT, K>(pub(crate) fn repair_context_nondeleted<T: GraphMutTxnT>( - edit in libpijul/src/missing_context.rs at line 160
mut known: K, - replacement in libpijul/src/missing_context.rs at line 161[4.702145]→[4.89644:89689](∅→∅),[4.26839]→[4.702176:702212](∅→∅),[4.89689]→[4.702176:702212](∅→∅),[4.702176]→[4.702176:702212](∅→∅)
) -> Result<(), MissingError<T::GraphError>>whereK: FnMut(Hash) -> bool,{) -> Result<(), MissingError<T::GraphError>> { - replacement in libpijul/src/missing_context.rs at line 167[4.59073]→[4.89690:89764](∅→∅),[4.123202]→[4.89690:89764](∅→∅),[4.10983]→[4.89690:89764](∅→∅),[4.89764]→[4.419:481](∅→∅),[4.481]→[4.11056:11147](∅→∅),[4.89764]→[4.11056:11147](∅→∅),[4.11056]→[4.11056:11147](∅→∅),[4.11147]→[4.704002:704008](∅→∅),[4.704002]→[4.704002:704008](∅→∅),[4.704008]→[4.11148:11149](∅→∅)
if deleted_by_unknown(txn, channel, source, change_id, &mut known)? {debug!("deleted by unknown, repairing {:?}", source);repair_missing_up_context(txn, channel, ws, change_id, inode, source, &[target])?;}repair_missing_up_context(txn, channel, ws, change_id, inode, source, &[target])?; - edit in libpijul/src/missing_context.rs at line 203[4.705747]→[4.12274:12277](∅→∅),[4.12277]→[4.90224:90264](∅→∅),[4.90264]→[4.12312:12325](∅→∅),[4.12312]→[4.12312:12325](∅→∅),[4.12325]→[4.90265:90289](∅→∅),[4.90289]→[4.12351:12425](∅→∅),[4.12351]→[4.12351:12425](∅→∅),[4.12425]→[4.90290:90331](∅→∅),[4.90331]→[4.12435:12511](∅→∅),[4.12435]→[4.12435:12511](∅→∅),[4.12511]→[4.90332:90411](∅→∅),[4.90411]→[4.123435:123505](∅→∅),[4.123505]→[4.12635:12667](∅→∅),[4.12635]→[4.12635:12667](∅→∅),[4.12667]→[3.17728:17856](∅→∅),[3.17856]→[4.12762:12832](∅→∅),[4.90508]→[4.12762:12832](∅→∅),[4.123614]→[4.12762:12832](∅→∅),[4.12762]→[4.12762:12832](∅→∅),[4.12832]→[4.90509:90539](∅→∅),[4.90539]→[4.12858:13049](∅→∅),[4.12858]→[4.12858:13049](∅→∅),[4.13049]→[4.90540:90567](∅→∅)
}fn deleted_by_unknown<T: GraphTxnT, K>(txn: &T,channel: &T::Graph,source: Vertex<ChangeId>,change_id: ChangeId,known: &mut K,) -> Result<bool, TxnErr<T::GraphError>>whereK: FnMut(Hash) -> bool,{let mut deleted_by_unknown = false;for v in iter_deleted_parents(txn, channel, source)? {let v = v?;if v.dest().change.is_root() || v.introduced_by().is_root() {continue;}if v.introduced_by() == change_id|| known(txn.get_external(&v.introduced_by())?.unwrap().into()){// If a known change also delete the context, we're good.return Ok(false);} else {// If an unknown change deletes the context, wait: maybe a// known change will delete it too.deleted_by_unknown = true;}}Ok(deleted_by_unknown) - edit in libpijul/src/change.rs at line 1
use crate::pristine::*;use chrono::{DateTime, Utc}; - replacement in libpijul/src/apply.rs at line 994
repair_context_nondeleted(txn,channel,&mut ws.missing_context,n.inode,change_id,|h| change.knows(&h),e,).map_err(LocalApplyError::from_missing)?repair_context_nondeleted(txn, channel, &mut ws.missing_context, n.inode, change_id, e).map_err(LocalApplyError::from_missing)?