SIGN IN SIGN UP

fix(worktree): probe the directory git would act on, and say why it stopped

Resolve the removal's filesystem probes from the project repository, the
way git resolves the same argument: `std::fs` would have used the app's
own working directory, so a project sitting at a filesystem root — where
`sibling_path` has nothing to prefix and returns a bare name — could
have `remove_dir` reach for a namesake beside the app while git still
held the real checkout.

Keep the OS error code on the filesystem failures instead of flattening
every one to `IoError`, and correct where that message is read: it lands
in the task's `cleanup_failed` timeline event, not on the card.

Make the two probe tests measure a modified TRACKED file. `has_changes`
spawns git through the inherited environment, so an untracked fixture is
only as visible as the developer's global ignore rules allow.
X
xintaofei committed
95de195002dc9c9c5dc3825dfe132afcccde29ab
Parent: 8d8cab6