diff options
| author | Danilo M. <danix@danix.xyz> | 2026-06-29 18:42:35 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-06-29 18:42:35 +0200 |
| commit | 8fe39342512aca391ea9534e1cec8bc4b805f100 (patch) | |
| tree | 9c0f5678bb9a84c45fb059f4a2e35d9aa62e0305 /.gitignore | |
| parent | 815b655a659a2160a812291ad72676a0e41de1db (diff) | |
| download | gitctl-8fe39342512aca391ea9534e1cec8bc4b805f100.tar.gz gitctl-8fe39342512aca391ea9534e1cec8bc4b805f100.zip | |
fix: repo create recovers from a crashed/interrupted run
Phase 1 was driven by text presence: stanza_exists read the working
gitolite.conf, so a run that died at the y/N prompt (EOFError with no
TTY) left the stanza uncommitted, and the next run reported "already
present", skipped the commit+push, then timed out waiting for a bare
repo gitolite was never told to build.
Drive Phase 1 by git state instead: ensure the stanza is in the working
file (idempotent), commit it if the working tree differs from HEAD, and
push if HEAD is ahead of upstream. This recovers both a leftover
uncommitted edit and a committed-but-unpushed stanza, and is a no-op
when already in sync. Confirm now happens before the commit, and abort
reverts to HEAD. Self-test pins the three git states with a throwaway
repo and bare upstream.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions
