--- a/rust/hg-cpython/src/dirstate/dirstate_map.rs Wed Mar 01 02:38:20 2023 +0100
+++ b/rust/hg-cpython/src/dirstate/dirstate_map.rs Mon Dec 12 17:08:12 2022 +0100
@@ -66,18 +66,28 @@
on_disk: PyBytes,
data_size: usize,
tree_metadata: PyBytes,
+ uuid: PyBytes,
) -> PyResult<PyObject> {
let dirstate_error = |e: DirstateError| {
PyErr::new::<exc::OSError, _>(py, format!("Dirstate error: {:?}", e))
};
let on_disk = PyBytesDeref::new(py, on_disk);
+ let uuid = uuid.data(py);
let map = OwningDirstateMap::new_v2(
- on_disk, data_size, tree_metadata.data(py),
+ on_disk, data_size, tree_metadata.data(py), uuid.to_owned(),
).map_err(dirstate_error)?;
let map = Self::create_instance(py, map)?;
Ok(map.into_object())
}
+ /// Returns an empty DirstateMap. Only used for a new dirstate.
+ @staticmethod
+ def new_empty() -> PyResult<PyObject> {
+ let map = OwningDirstateMap::new_empty(vec![]);
+ let map = Self::create_instance(py, map)?;
+ Ok(map.into_object())
+ }
+
def clear(&self) -> PyResult<PyObject> {
self.inner(py).borrow_mut().clear();
Ok(py.None())