marmoute updated this revision to Diff 18891. REPOSITORY rHG Mercurial
CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7658?vs=18704&id=18891 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7658/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7658 AFFECTED FILES rust/hg-cpython/src/revlog.rs tests/test-rust-revlog.py CHANGE DETAILS diff --git a/tests/test-rust-revlog.py b/tests/test-rust-revlog.py --- a/tests/test-rust-revlog.py +++ b/tests/test-rust-revlog.py @@ -25,6 +25,13 @@ rustidx = revlog.MixedIndex(idx) self.assertEqual(rustidx.headrevs(), idx.headrevs()) + def test_get_cindex(self): + # drop me once we no longer need the method for shortest node + idx = self.parseindex() + rustidx = revlog.MixedIndex(idx) + cidx = rustidx.get_cindex() + self.assertTrue(idx is cidx) + def test_len(self): idx = self.parseindex() rustidx = revlog.MixedIndex(idx) diff --git a/rust/hg-cpython/src/revlog.rs b/rust/hg-cpython/src/revlog.rs --- a/rust/hg-cpython/src/revlog.rs +++ b/rust/hg-cpython/src/revlog.rs @@ -32,6 +32,17 @@ cindex::Index::new(py, cindex)?)) } + /// Compatibility layer used for Python consumers needing access to the C index + /// + /// Only use case so far is `scmutil.shortesthexnodeidprefix`, + /// that may need to build a custom `nodetree`, based on a specified revset. + /// With a Rust implementation of the nodemap, we will be able to get rid of + /// this, by exposing our own standalone nodemap class, + /// ready to accept `MixedIndex`. + def get_cindex(&self) -> PyResult<PyObject> { + Ok(self.cindex(py).borrow().inner().clone_ref(py)) + } + // Reforwarded C index API To: marmoute, #hg-reviewers Cc: durin42, kevincox, mjpieters, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel