* fix git diff performance on large git repos
To make `diff_status` faster on large repos, we collect changes and untracked file names from the worktree index, which benefits from caching, before adding them to the temporary index to calculate accurate rename tracking.
* capture git error correctly when stdin fails to write
* default stdin to null