Mercurial > public > mercurial-scm > hg-stable
diff rust/hg-cpython/src/dirstate.rs @ 47291:1766130fe9ba
dirstate-v2: Change the on-disk format when the requirement is enabled
For now, the format is the same except with an additional marker at the start.
This marker is redundant: for existing repositories it is `.hg/requires` that
determines which format to use. For new repositories, it is the new
`format.exp-dirstate-v2` config. There is no upgrade or downgrade so far.
Most of the changes are about plumbing a boolean through layers of APIs to
indicate which format should be used.
Differential Revision: https://phab.mercurial-scm.org/D10719
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Wed, 19 May 2021 13:15:00 +0200 |
parents | d8ac62374943 |
children | 84391ddf4c78 |
line wrap: on
line diff
--- a/rust/hg-cpython/src/dirstate.rs Wed May 19 13:15:00 2021 +0200 +++ b/rust/hg-cpython/src/dirstate.rs Wed May 19 13:15:00 2021 +0200 @@ -26,6 +26,7 @@ exc, PyBytes, PyDict, PyErr, PyList, PyModule, PyObject, PyResult, PySequence, Python, }; +use hg::dirstate_tree::on_disk::V2_FORMAT_MARKER; use hg::{utils::hg_path::HgPathBuf, DirstateEntry, EntryState, StateMap}; use libc::{c_char, c_int}; use std::convert::TryFrom; @@ -117,6 +118,7 @@ )?; m.add_class::<Dirs>(py)?; m.add_class::<DirstateMap>(py)?; + m.add(py, "V2_FORMAT_MARKER", PyBytes::new(py, V2_FORMAT_MARKER))?; m.add( py, "status",