Mercurial > hg
comparison rust/hg-core/src/dirstate/entry.rs @ 48051:98c0408324e6
dirstate: Pass the final DirstateItem to _rustmap.addfile()
Now that the Python DirstateItem class wraps a Rust DirstateEntry value,
use that value directly instead of converting through v1 data + 5 booleans.
Also remove propogating the return value. None of the callers look at it,
and it is always None.
Differential Revision: https://phab.mercurial-scm.org/D11494
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Thu, 23 Sep 2021 18:29:40 +0200 |
parents | 3e69bef2031a |
children | 060cd909439f |
comparison
equal
deleted
inserted
replaced
48050:2ac0e6b23222 | 48051:98c0408324e6 |
---|---|
81 mode, | 81 mode, |
82 size, | 82 size, |
83 mtime: 0, | 83 mtime: 0, |
84 } | 84 } |
85 } else { | 85 } else { |
86 Self { | 86 Self::new_normal(mode, size, mtime) |
87 flags: Flags::WDIR_TRACKED | Flags::P1_TRACKED, | |
88 mode, | |
89 size, | |
90 mtime, | |
91 } | |
92 } | 87 } |
93 } | 88 } |
94 EntryState::Added => Self::new_added(), | 89 EntryState::Added => Self::new_added(), |
95 EntryState::Removed => Self { | 90 EntryState::Removed => Self { |
96 flags: if size == SIZE_NON_NORMAL { | 91 flags: if size == SIZE_NON_NORMAL { |
109 }, | 104 }, |
110 EntryState::Merged => Self::new_merged(), | 105 EntryState::Merged => Self::new_merged(), |
111 } | 106 } |
112 } | 107 } |
113 | 108 |
114 fn new_from_p2() -> Self { | 109 pub fn new_from_p2() -> Self { |
115 Self { | 110 Self { |
116 // might be missing P1_TRACKED | 111 // might be missing P1_TRACKED |
117 flags: Flags::WDIR_TRACKED | Flags::P2_TRACKED | Flags::CLEAN_P2, | 112 flags: Flags::WDIR_TRACKED | Flags::P2_TRACKED | Flags::CLEAN_P2, |
118 mode: 0, | 113 mode: 0, |
119 size: SIZE_FROM_OTHER_PARENT, | 114 size: SIZE_FROM_OTHER_PARENT, |
120 mtime: MTIME_UNSET, | 115 mtime: MTIME_UNSET, |
121 } | 116 } |
122 } | 117 } |
123 | 118 |
124 fn new_possibly_dirty() -> Self { | 119 pub fn new_possibly_dirty() -> Self { |
125 Self { | 120 Self { |
126 flags: Flags::WDIR_TRACKED | 121 flags: Flags::WDIR_TRACKED |
127 | Flags::P1_TRACKED | 122 | Flags::P1_TRACKED |
128 | Flags::POSSIBLY_DIRTY, | 123 | Flags::POSSIBLY_DIRTY, |
129 mode: 0, | 124 mode: 0, |
130 size: SIZE_NON_NORMAL, | 125 size: SIZE_NON_NORMAL, |
131 mtime: MTIME_UNSET, | 126 mtime: MTIME_UNSET, |
132 } | 127 } |
133 } | 128 } |
134 | 129 |
135 fn new_added() -> Self { | 130 pub fn new_added() -> Self { |
136 Self { | 131 Self { |
137 flags: Flags::WDIR_TRACKED, | 132 flags: Flags::WDIR_TRACKED, |
138 mode: 0, | 133 mode: 0, |
139 size: SIZE_NON_NORMAL, | 134 size: SIZE_NON_NORMAL, |
140 mtime: MTIME_UNSET, | 135 mtime: MTIME_UNSET, |
141 } | 136 } |
142 } | 137 } |
143 | 138 |
144 fn new_merged() -> Self { | 139 pub fn new_merged() -> Self { |
145 Self { | 140 Self { |
146 flags: Flags::WDIR_TRACKED | 141 flags: Flags::WDIR_TRACKED |
147 | Flags::P1_TRACKED // might not be true because of rename ? | 142 | Flags::P1_TRACKED // might not be true because of rename ? |
148 | Flags::P2_TRACKED // might not be true because of rename ? | 143 | Flags::P2_TRACKED // might not be true because of rename ? |
149 | Flags::MERGED, | 144 | Flags::MERGED, |
151 size: SIZE_NON_NORMAL, | 146 size: SIZE_NON_NORMAL, |
152 mtime: MTIME_UNSET, | 147 mtime: MTIME_UNSET, |
153 } | 148 } |
154 } | 149 } |
155 | 150 |
151 pub fn new_normal(mode: i32, size: i32, mtime: i32) -> Self { | |
152 Self { | |
153 flags: Flags::WDIR_TRACKED | Flags::P1_TRACKED, | |
154 mode, | |
155 size, | |
156 mtime, | |
157 } | |
158 } | |
159 | |
156 /// Creates a new entry in "removed" state. | 160 /// Creates a new entry in "removed" state. |
157 /// | 161 /// |
158 /// `size` is expected to be zero, `SIZE_NON_NORMAL`, or | 162 /// `size` is expected to be zero, `SIZE_NON_NORMAL`, or |
159 /// `SIZE_FROM_OTHER_PARENT` | 163 /// `SIZE_FROM_OTHER_PARENT` |
160 pub fn new_removed(size: i32) -> Self { | 164 pub fn new_removed(size: i32) -> Self { |
161 Self::from_v1_data(EntryState::Removed, 0, size, 0) | 165 Self::from_v1_data(EntryState::Removed, 0, size, 0) |
162 } | |
163 | |
164 /// TODO: refactor `DirstateMap::add_file` to not take a `DirstateEntry` | |
165 /// parameter and remove this constructor | |
166 pub fn new_for_add_file(mode: i32, size: i32, mtime: i32) -> Self { | |
167 // XXX Arbitrary default value since the value is determined later | |
168 let state = EntryState::Normal; | |
169 Self::from_v1_data(state, mode, size, mtime) | |
170 } | 166 } |
171 | 167 |
172 pub fn tracked(&self) -> bool { | 168 pub fn tracked(&self) -> bool { |
173 self.flags.contains(Flags::WDIR_TRACKED) | 169 self.flags.contains(Flags::WDIR_TRACKED) |
174 } | 170 } |