##// END OF EJS Templates
rhg: fix race when a fixup file is deleted on disk...
Raphaël Gomès -
r51120:53ca3e3b stable
parent child Browse files
Show More
@@ -436,9 +436,21 b' pub fn run(invocation: &crate::CliInvoca'
436 // `unsure_is_clean` which was needed before reading
436 // `unsure_is_clean` which was needed before reading
437 // contents. Here we access metadata again after reading
437 // contents. Here we access metadata again after reading
438 // content, in case it changed in the meantime.
438 // content, in case it changed in the meantime.
439 let fs_metadata = repo
439 let metadata_res = repo
440 .working_directory_vfs()
440 .working_directory_vfs()
441 .symlink_metadata(&fs_path)?;
441 .symlink_metadata(&fs_path);
442 let fs_metadata = match metadata_res {
443 Ok(meta) => meta,
444 Err(err) => match err {
445 HgError::IoError { .. } => {
446 // The file has probably been deleted. In any
447 // case, it was in the dirstate before, so
448 // let's ignore the error.
449 continue;
450 }
451 _ => return Err(err.into()),
452 },
453 };
442 if let Some(mtime) =
454 if let Some(mtime) =
443 TruncatedTimestamp::for_reliable_mtime_of(
455 TruncatedTimestamp::for_reliable_mtime_of(
444 &fs_metadata,
456 &fs_metadata,
@@ -382,7 +382,6 b' The status process should return a consi'
382 ? p
382 ? p
383 ? q
383 ? q
384 $ cat $TESTTMP/status-race-lock.log
384 $ cat $TESTTMP/status-race-lock.log
385 abort: when reading $TESTTMP/race-with-update/dir2/k: $ENOENT$ (known-bad-output rhg !)
386
385
387 final cleanup
386 final cleanup
388
387
@@ -479,7 +478,6 b' The status process should return a consi'
479 ? p
478 ? p
480 ? q
479 ? q
481 $ cat $TESTTMP/status-race-lock.log
480 $ cat $TESTTMP/status-race-lock.log
482 abort: when reading $TESTTMP/race-with-remove/dir2/l: $ENOENT$ (known-bad-output rhg !)
483
481
484 final cleanup
482 final cleanup
485
483
General Comments 0
You need to be logged in to leave comments. Login now