Resurrecting known deleted files instead of re-adding them (this is needed after `tag reset`)
Dependencies
- [2]
ZDK3GNDBTag transactions (including a massive refactoring of errors) - [3]
FXEDPLRIResurrecting tests, and type cleanup (no need for Arc<RwLock<…>> anymore) - [4]
I24UEJQLVarious post-fire fixes - [5]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump - [6]
RMDMAYRXAdding a root inode (aka supporting submodules) - [7]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [8]
ZSF3YFZTencoded file deletion
Change contents
- replacement in libpijul/src/record.rs at line 259
if e?.flag().is_alive_parent() {if e?.flag().is_parent() { - replacement in libpijul/src/record.rs at line 909
let (former_parents, is_deleted) =let (former_parents, is_deleted, encoding) = - edit in libpijul/src/record.rs at line 915
assert!(!former_parents.is_empty()); - edit in libpijul/src/record.rs at line 930
encoding, - edit in libpijul/src/record.rs at line 961
encoding: Option<Encoding>, - replacement in libpijul/src/record.rs at line 966
if former_parents.len() > 1if former_parents.is_empty() {// This is the case where the inode exists both in the// graph and in the inode tables, but isn't alive in the// graph.//// This can happen (1) when outputting a tag that has this// file, after recording the deletion of the file, or (2)// when recording after applying, but before outputting,// but this is a misuse of the library.debug!("new_papa = {:?}", new_papa);self.record_moved_file::<_, _, W>(changes,txn,channel,&item,vertex,new_papa.unwrap(),encoding,)?} else if former_parents.len() > 1 - replacement in libpijul/src/record.rs at line 1190
) -> Result<(Vec<Parent>, bool), RecordError<C::Error, W::Error, T>>) -> Result<(Vec<Parent>, bool, Option<Encoding>), RecordError<C::Error, W::Error, T>> - edit in libpijul/src/record.rs at line 1198
let mut encoding_ = None; - replacement in libpijul/src/record.rs at line 1206
if name_.flag().contains(EdgeFlags::DELETED) {debug!("is_deleted {:?}", name_);is_deleted = true;break;} - edit in libpijul/src/record.rs at line 1226
if name_.flag().contains(EdgeFlags::DELETED) {debug!("is_deleted {:?}", name_);is_deleted = true;if encoding_.is_none() {encoding_ = encoding}break;} - edit in libpijul/src/record.rs at line 1238
if encoding_.is_none() {encoding_ = encoding.clone()} - replacement in libpijul/src/record.rs at line 1250
Ok((former_parents, is_deleted))Ok((former_parents, is_deleted, encoding_))