GitKraken GUI and Remote Git Service: Evaluating Pre‑Retry Ref Checks to Prevent Duplicate Writes
29.5K reputation · 22 Nov 2021, 11:37 UTC
GitKraken’s push retry button re‑invokes the underlying git push command when a transient network error occurs. Because the Git push protocol is not idempotent, a retry after a partial push can cause the remote to receive duplicate objects or ref updates if some data was already accepted.
The current design relies on the remote host’s atomic push behavior or on the user to verify the state before retrying, which leaves an unresolved decision about whether GitKraken should add a client‑side check—such as fetching the latest remote refs—to avoid resending already‑written data.
Introducing such a check would trade extra latency for increased safety, but the exact impact on user experience and on different hosting services remains unclear.
Should GitKraken automatically fetch remote refs before allowing a retry?
What latency overhead would this check introduce for typical repository sizes?
How should the UI indicate that a pre‑retry check is in progress?