Skip to main content

Module auto_push_single_flight

Module auto_push_single_flight 

Source
Expand description

The real Git of a push, its query runner and the failure types of a push. What: The service’s Git for a push: the real Git, its working directory and environment, the command builder, the deadline-bound read-only query and the failure types of a push. Why: The push, its reconcile and the queries before them all start Git the same way, so none re-enters the wrapper and every Git child receives the same environment.

In TS you’d write (pseudocode):

const output = await nanoSpawn(gitPath, args, { cwd, env });

Structs§

PushAttempt
What: One push this invocation ran itself. Why: output is Git’s interleaved output with one trailing line break removed, as the incumbent’s nano-spawn output is; a successful push’s output is never recorded.
PushGit
What: The real Git the service runs, where, and with which environment. Why: The service passes the complete environment in (the invocation’s variables with the overlay applied), and nothing is read from the process environment here.

Enums§

SingleFlightError
What: Why a push or one of its Git queries could not finish. Why: Every variant is a failure the service reports, and the commit stays saved.

Functions§

git_command
What: Build a real Git command with the given arguments, directory and environment. Why: Every coordination query and push starts Git this way, so none re-enters the wrapper.
git_output
What: Run a read-only Git query and return its trimmed standard output. Result<A, B> is either the output or a failure. Why: Any failed query is a coordination failure; it is never read as an answer.
run_query
What: Run a read-only Git query that is ended only when it shows no sign of work, and capture its streams separately. Why: A query that never returns would hold the caller, and the service’s push behind it, for good.