This should be safer than relying on file open error. It's scary to continue processing if the file was a symlink. I'll add a few more sanity checks to remove_old_file(), so it's extracted as a function.
mut_repo()
repo_mut()
repo_path
ReadonlyRepo
RepoLoader
MutableRepo::reparent_descendants()