comparison rust/hg-core/src/dirstate/entry.rs @ 48265:b874e8d81a98

dirstate-v2: preserve the fallback values on disk When the fallback values are set, they are now read and written to disk. See format documentation for details. Differential Revision: https://phab.mercurial-scm.org/D11688
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 18 Oct 2021 10:56:54 +0200
parents 948570aa7630
children f45d35950db6
comparison
equal deleted inserted replaced
48264:948570aa7630 48265:b874e8d81a98
337 } 337 }
338 338
339 /// Returns `(wdir_tracked, p1_tracked, p2_info, mode_size, mtime)` 339 /// Returns `(wdir_tracked, p1_tracked, p2_info, mode_size, mtime)`
340 pub(crate) fn v2_data( 340 pub(crate) fn v2_data(
341 &self, 341 &self,
342 ) -> (bool, bool, bool, Option<(u32, u32)>, Option<u32>) { 342 ) -> (
343 bool,
344 bool,
345 bool,
346 Option<(u32, u32)>,
347 Option<u32>,
348 Option<bool>,
349 Option<bool>,
350 ) {
343 if !self.any_tracked() { 351 if !self.any_tracked() {
344 // TODO: return an Option instead? 352 // TODO: return an Option instead?
345 panic!("Accessing v1_state of an untracked DirstateEntry") 353 panic!("Accessing v1_state of an untracked DirstateEntry")
346 } 354 }
347 let wdir_tracked = self.flags.contains(Flags::WDIR_TRACKED); 355 let wdir_tracked = self.flags.contains(Flags::WDIR_TRACKED);
348 let p1_tracked = self.flags.contains(Flags::P1_TRACKED); 356 let p1_tracked = self.flags.contains(Flags::P1_TRACKED);
349 let p2_info = self.flags.contains(Flags::P2_INFO); 357 let p2_info = self.flags.contains(Flags::P2_INFO);
350 let mode_size = self.mode_size; 358 let mode_size = self.mode_size;
351 let mtime = self.mtime; 359 let mtime = self.mtime;
352 (wdir_tracked, p1_tracked, p2_info, mode_size, mtime) 360 (
361 wdir_tracked,
362 p1_tracked,
363 p2_info,
364 mode_size,
365 mtime,
366 self.get_fallback_exec(),
367 self.get_fallback_symlink(),
368 )
353 } 369 }
354 370
355 fn v1_state(&self) -> EntryState { 371 fn v1_state(&self) -> EntryState {
356 if !self.any_tracked() { 372 if !self.any_tracked() {
357 // TODO: return an Option instead? 373 // TODO: return an Option instead?