coding: make branch creation HEAD fence atomic #386

Open
nsaspy wants to merge 0 commits from rage/189-atomic-branch-create into main
Owner

Closes #189. Advances #1.

RAGE transaction.

RED 9a5f9fd1: branch creation must use one git update-ref --stdin transaction that verifies HEAD == expected_head and creates the new branch ref together; the old separate rev-parse HEAD precheck is forbidden.

RED was confirmed by exact-head CI: compatibility diagnostics passed, coding tests failed at the new atomic contract, package builds were skipped.

Sync 0af0a266: merged canonical main including #188 without losing the RED.

Implementation 8310dbfb: uses one canonical update-ref --stdin transaction with start, verify HEAD, create-only branch ref, prepare, and commit; full object-ID/ref validation remains unchanged.

Final gate: compatibility contracts, full generated registry/plugin nix flake check, generated package builds, zero unresolved review threads, exact-head protected merge.

Closes #189. Advances #1. RAGE transaction. RED `9a5f9fd1`: branch creation must use one `git update-ref --stdin` transaction that verifies `HEAD == expected_head` and creates the new branch ref together; the old separate `rev-parse HEAD` precheck is forbidden. RED was confirmed by exact-head CI: compatibility diagnostics passed, coding tests failed at the new atomic contract, package builds were skipped. Sync `0af0a266`: merged canonical `main` including #188 without losing the RED. Implementation `8310dbfb`: uses one canonical `update-ref --stdin` transaction with `start`, `verify HEAD`, create-only branch ref, `prepare`, and `commit`; full object-ID/ref validation remains unchanged. Final gate: compatibility contracts, full generated registry/plugin `nix flake check`, generated package builds, zero unresolved review threads, exact-head protected merge.
Some checks failed
CI / test (pull_request) Failing after 18s
This branch is already included in the target branch. There is nothing to merge.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin rage/189-atomic-branch-create:rage/189-atomic-branch-create
git switch rage/189-atomic-branch-create

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff rage/189-atomic-branch-create
git switch rage/189-atomic-branch-create
git rebase main
git switch main
git merge --ff-only rage/189-atomic-branch-create
git switch rage/189-atomic-branch-create
git rebase main
git switch main
git merge --no-ff rage/189-atomic-branch-create
git switch main
git merge --squash rage/189-atomic-branch-create
git switch main
git merge --ff-only rage/189-atomic-branch-create
git switch main
git merge rage/189-atomic-branch-create
git push origin main
Sign in to join this conversation.
No description provided.