pub fn run_real_git(
real_git: &Path,
arguments: &[OsString],
overlay: &[(OsString, OsString)],
) -> Result<ChildOutcome>Expand description
What:
Run real Git as a child with inherited stdin,
stdout and stderr,
and wait.
std::io::Result<T> is Result<T, std::io::Error>.
Why:
Callers that must do work after Git returns (post-commit policies,
status
notes) need the wrapper process to survive Git.
The child shares the
caller’s terminal and streams directly;
nothing is buffered or copied.
This path installs no signal handlers:
a signal sent to the wrapper alone
does not reach Git,
exactly as with the TypeScript wrapper.
In TS you’d write (pseudocode):
async function runRealGit(realGit, args, overlay): Promise<ChildOutcome>;