marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches.
REVISION SUMMARY It was currently missing and we want to be able to use in it the Rust case too. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11579 AFFECTED FILES rust/hg-core/src/dirstate/entry.rs rust/hg-cpython/src/dirstate/item.rs CHANGE DETAILS diff --git a/rust/hg-cpython/src/dirstate/item.rs b/rust/hg-cpython/src/dirstate/item.rs --- a/rust/hg-cpython/src/dirstate/item.rs +++ b/rust/hg-cpython/src/dirstate/item.rs @@ -166,6 +166,11 @@ DirstateItem::create_instance(py, Cell::new(entry)) } + def drop_merge_data(&self) -> PyResult<PyNone> { + self.update(py, |entry| entry.drop_merge_data()); + Ok(PyNone) + } + def set_clean( &self, mode: i32, diff --git a/rust/hg-core/src/dirstate/entry.rs b/rust/hg-core/src/dirstate/entry.rs --- a/rust/hg-core/src/dirstate/entry.rs +++ b/rust/hg-core/src/dirstate/entry.rs @@ -263,6 +263,33 @@ } } + pub fn drop_merge_data(&mut self) { + if self.flags.contains(Flags::CLEAN_P1) + || self.flags.contains(Flags::CLEAN_P2) + || self.flags.contains(Flags::MERGED) + || self.flags.contains(Flags::P2_TRACKED) + { + if self.flags.contains(Flags::MERGED) { + self.flags.insert(Flags::P1_TRACKED); + } else { + self.flags.remove(Flags::P1_TRACKED); + } + self.flags.remove( + Flags::MERGED + | Flags::CLEAN_P1 + | Flags::CLEAN_P2 + | Flags::P2_TRACKED, + ); + self.flags.insert(Flags::POSSIBLY_DIRTY); + self.mode = 0; + self.mtime = 0; + // size = None on the python size turn into size = NON_NORMAL when + // accessed. So the next line is currently required, but a some + // future clean up would be welcome. + self.size = SIZE_NON_NORMAL; + } + } + pub fn set_possibly_dirty(&mut self) { self.flags.insert(Flags::POSSIBLY_DIRTY) } To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel