Skip to content
zit zit 0.3.27
Login

zit 0.3.27

zit 0.3.27 gives a refused protected-branch push a way back: the pusher moves the check-in to another branch and pushes again, and it lands there.

No artifact, tag namespace, sync message, or on-disk repository format changed.

A refused check-in can be amended onto another branch

A push that would join a protected branch is refused, and correctly so. But the obvious recovery — zit amend X --branch other, which cancels sym-trunk on X from a control artifact — was refused as well. The rule judged a cancel by the name it carried and never by whether the server held its target, so it treated "move this check-in you never admitted" the same as "remove this check-in you hold". Every later push from that checkout then carried the same refused round, and the only exits were a fresh clone or a local purge and recommit.

Two things changed in the rule, both on the server:

Two smaller corrections fell out of testing this:

The fronted push remains the front's rule: protect_globs decide which branches are guarded, and nothing here introduces a new identity question or a new header.

Compatibility

Qualification

zig fmt --check, zig build test, e2e, smoke, git-import-e2e, git-export-e2e, and dst, plus the three-runner CI battery.