comparison rust/hg-cpython/src/revlog.rs @ 47034:0d8ff1f4ab0c

revlog: add a `entry_binary` method on index The revlog index is already responsible for unpacking the binary entry, it would be simpler to make it responsible for packing them. In practice the C version of the index is already doing this internally. We introduce a "entry_binary" method that return the binary version of an existing revision. The method currently need to also take the revlog header to deal with the "first revision" special case. We will introduce further refactor in a later changeset to split that logic out. Differential Revision: https://phab.mercurial-scm.org/D10508
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 08 Apr 2021 00:01:11 +0200
parents 3c9208702db3
children d57386e5c80e
comparison
equal deleted inserted replaced
47033:824ee4aaa09b 47034:0d8ff1f4ab0c
168 def clearcaches(&self, *args, **kw) -> PyResult<PyObject> { 168 def clearcaches(&self, *args, **kw) -> PyResult<PyObject> {
169 self.nt(py).borrow_mut().take(); 169 self.nt(py).borrow_mut().take();
170 self.docket(py).borrow_mut().take(); 170 self.docket(py).borrow_mut().take();
171 self.mmap(py).borrow_mut().take(); 171 self.mmap(py).borrow_mut().take();
172 self.call_cindex(py, "clearcaches", args, kw) 172 self.call_cindex(py, "clearcaches", args, kw)
173 }
174
175 /// return the raw binary string representing a revision
176 def entry_binary(&self, *args, **kw) -> PyResult<PyObject> {
177 self.call_cindex(py, "entry_binary", args, kw)
173 } 178 }
174 179
175 /// get an index entry 180 /// get an index entry
176 def get(&self, *args, **kw) -> PyResult<PyObject> { 181 def get(&self, *args, **kw) -> PyResult<PyObject> {
177 self.call_cindex(py, "get", args, kw) 182 self.call_cindex(py, "get", args, kw)