Mercurial > public > mercurial-scm > hg-stable
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 /// |