Show More
@@ -664,7 +664,7 b' if rustmod is not None:' | |||
|
664 | 664 | new = True |
|
665 | 665 | elif not entry.tracked: |
|
666 | 666 | entry.set_tracked() |
|
667 |
self._rustmap.set_ |
|
|
667 | self._rustmap.set_dirstate_item(filename, entry) | |
|
668 | 668 | new = True |
|
669 | 669 | else: |
|
670 | 670 | # XXX This is probably overkill for more case, but we need this to |
@@ -949,7 +949,7 b' if rustmod is not None:' | |||
|
949 | 949 | """record that the current state of the file on disk is unknown""" |
|
950 | 950 | entry = self[filename] |
|
951 | 951 | entry.set_possibly_dirty() |
|
952 |
self._rustmap.set_ |
|
|
952 | self._rustmap.set_dirstate_item(filename, entry) | |
|
953 | 953 | |
|
954 | 954 | def set_clean(self, filename, mode, size, mtime): |
|
955 | 955 | """mark a file as back to a clean state""" |
@@ -957,9 +957,9 b' if rustmod is not None:' | |||
|
957 | 957 | mtime = mtime & rangemask |
|
958 | 958 | size = size & rangemask |
|
959 | 959 | entry.set_clean(mode, size, mtime) |
|
960 |
self._rustmap.set_ |
|
|
960 | self._rustmap.set_dirstate_item(filename, entry) | |
|
961 | 961 | self._rustmap.copymap().pop(filename, None) |
|
962 | 962 | |
|
963 | 963 | def __setitem__(self, key, value): |
|
964 | 964 | assert isinstance(value, DirstateItem) |
|
965 |
self._rustmap.set_ |
|
|
965 | self._rustmap.set_dirstate_item(key, value) |
@@ -64,7 +64,7 b' impl DirstateMap {' | |||
|
64 | 64 | self.other_parent_set = None; |
|
65 | 65 | } |
|
66 | 66 | |
|
67 |
pub fn set_ |
|
|
67 | pub fn set_entry(&mut self, filename: &HgPath, entry: DirstateEntry) { | |
|
68 | 68 | self.state_map.insert(filename.to_owned(), entry); |
|
69 | 69 | } |
|
70 | 70 |
@@ -758,7 +758,7 b" impl<'on_disk> super::dispatch::Dirstate" | |||
|
758 | 758 | self.nodes_with_copy_source_count = 0; |
|
759 | 759 | } |
|
760 | 760 | |
|
761 |
fn set_ |
|
|
761 | fn set_entry(&mut self, filename: &HgPath, entry: DirstateEntry) { | |
|
762 | 762 | let node = |
|
763 | 763 | self.get_or_insert(&filename).expect("no parse error in v1"); |
|
764 | 764 | node.data = NodeData::Entry(entry); |
@@ -37,7 +37,9 b' pub trait DirstateMapMethods {' | |||
|
37 | 37 | /// Remove information about all files in this map |
|
38 | 38 | fn clear(&mut self); |
|
39 | 39 | |
|
40 | fn set_v1(&mut self, filename: &HgPath, entry: DirstateEntry); | |
|
40 | /// Add the given filename to the map if it is not already there, and | |
|
41 | /// associate the given entry with it. | |
|
42 | fn set_entry(&mut self, filename: &HgPath, entry: DirstateEntry); | |
|
41 | 43 | |
|
42 | 44 | /// Add or change the information associated to a given file. |
|
43 | 45 | /// |
@@ -319,8 +321,8 b' impl DirstateMapMethods for DirstateMap ' | |||
|
319 | 321 | /// |
|
320 | 322 | /// XXX Is temporary during a refactor of V1 dirstate and will disappear |
|
321 | 323 | /// shortly. |
|
322 |
fn set_ |
|
|
323 |
self.set_ |
|
|
324 | fn set_entry(&mut self, filename: &HgPath, entry: DirstateEntry) { | |
|
325 | self.set_entry(&filename, entry) | |
|
324 | 326 | } |
|
325 | 327 | |
|
326 | 328 | fn add_file( |
@@ -20,8 +20,8 b' impl DirstateMapMethods for OwningDirsta' | |||
|
20 | 20 | self.get_mut().clear() |
|
21 | 21 | } |
|
22 | 22 | |
|
23 |
fn set_ |
|
|
24 |
self.get_mut().set_ |
|
|
23 | fn set_entry(&mut self, filename: &HgPath, entry: DirstateEntry) { | |
|
24 | self.get_mut().set_entry(filename, entry) | |
|
25 | 25 | } |
|
26 | 26 | |
|
27 | 27 | fn add_file( |
@@ -129,18 +129,14 b' py_class!(pub class DirstateMap |py| {' | |||
|
129 | 129 | } |
|
130 | 130 | } |
|
131 | 131 | |
|
132 | def set_v1(&self, path: PyObject, item: PyObject) -> PyResult<PyObject> { | |
|
132 | def set_dirstate_item( | |
|
133 | &self, | |
|
134 | path: PyObject, | |
|
135 | item: DirstateItem | |
|
136 | ) -> PyResult<PyObject> { | |
|
133 | 137 | let f = path.extract::<PyBytes>(py)?; |
|
134 | 138 | let filename = HgPath::new(f.data(py)); |
|
135 | let state = item.getattr(py, "state")?.extract::<PyBytes>(py)?; | |
|
136 | let state = state.data(py)[0]; | |
|
137 | let entry = DirstateEntry::from_v1_data( | |
|
138 | state.try_into().expect("state is always valid"), | |
|
139 | item.getattr(py, "mode")?.extract(py)?, | |
|
140 | item.getattr(py, "size")?.extract(py)?, | |
|
141 | item.getattr(py, "mtime")?.extract(py)?, | |
|
142 | ); | |
|
143 | self.inner(py).borrow_mut().set_v1(filename, entry); | |
|
139 | self.inner(py).borrow_mut().set_entry(filename, item.get_entry(py)); | |
|
144 | 140 | Ok(py.None()) |
|
145 | 141 | } |
|
146 | 142 |
@@ -180,6 +180,10 b' impl DirstateItem {' | |||
|
180 | 180 | Ok(DirstateItem::create_instance(py, Cell::new(entry))?.into_object()) |
|
181 | 181 | } |
|
182 | 182 | |
|
183 | pub fn get_entry(&self, py: Python<'_>) -> DirstateEntry { | |
|
184 | self.entry(py).get() | |
|
185 | } | |
|
186 | ||
|
183 | 187 | // TODO: Use https://doc.rust-lang.org/std/cell/struct.Cell.html#method.update instead when it’s stable |
|
184 | 188 | pub fn update(&self, py: Python<'_>, f: impl FnOnce(&mut DirstateEntry)) { |
|
185 | 189 | let mut entry = self.entry(py).get(); |
General Comments 0
You need to be logged in to leave comments.
Login now