comparison rust/hg-cpython/src/revlog.rs @ 51217:f95f70cf2ee2

rust-index: check rindex and cindex return the same get_rev This is a temporary safeguard while we synchronize both indexes.
author Rapha?l Gom?s <rgomes@octobus.net>
date Thu, 29 Jun 2023 11:37:19 +0200
parents f6403bcd9f96
children 4e6620b7fbbb
comparison
equal deleted inserted replaced
51216:f6403bcd9f96 51217:f95f70cf2ee2
72 /// in case of ambiguity, same as C version does 72 /// in case of ambiguity, same as C version does
73 def get_rev(&self, node: PyBytes) -> PyResult<Option<PyRevision>> { 73 def get_rev(&self, node: PyBytes) -> PyResult<Option<PyRevision>> {
74 let opt = self.get_nodetree(py)?.borrow(); 74 let opt = self.get_nodetree(py)?.borrow();
75 let nt = opt.as_ref().unwrap(); 75 let nt = opt.as_ref().unwrap();
76 let idx = &*self.cindex(py).borrow(); 76 let idx = &*self.cindex(py).borrow();
77 let ridx = &*self.index(py).borrow();
77 let node = node_from_py_bytes(py, &node)?; 78 let node = node_from_py_bytes(py, &node)?;
78 let res = nt.find_bin(idx, node.into()); 79 let rust_rev =
79 Ok(res.map_err(|e| nodemap_error(py, e))?.map(Into::into)) 80 nt.find_bin(ridx, node.into()).map_err(|e| nodemap_error(py, e))?;
81 let c_rev =
82 nt.find_bin(idx, node.into()).map_err(|e| nodemap_error(py, e))?;
83 assert_eq!(rust_rev, c_rev);
84 Ok(rust_rev.map(Into::into))
85
80 } 86 }
81 87
82 /// same as `get_rev()` but raises a bare `error.RevlogError` if node 88 /// same as `get_rev()` but raises a bare `error.RevlogError` if node
83 /// is not found. 89 /// is not found.
84 /// 90 ///