~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

Merging keeps a protected head branch, and a failed compaction spares the push

Merged
Merged chadtmiller.com asked to merge into main from chadtmiller.com/knotless:client/small-fixes

What changes

  • Merging a pull keeps its head branch when that branch is protected, and says why. Before, it tried to delete it, and a gateway refuses that.
  • The delete now goes in a push of its own, after the target moves. If it is refused, the merge still finishes and the pull is marked merged.
  • A compaction that fails after a push no longer fails the push. The helper says so on stderr.
  • KNOTLESS_INLINE_MAX is held to 262144 bytes, the limit in the pack lexicon. docs/reference/cli.md and docs/design/collaboration.md say so.

Why

A merge through a gateway could move the branch and then fail on the delete, leaving the pull open. A failed compaction made a git push that had landed look failed. A larger KNOTLESS_INLINE_MAX wrote pack records the lexicon refuses.

Fixes Merge through the gateway can move the branch but leave the pull open

Partly addresses Storage: quirks in push, compaction and mirrors (the inline compaction and the inline cap only). The other items stay open.

How it was checked

The serve test for merging now protects a branch, merges a pull from it, and checks the branch is still there. why_kept and the env clamp have unit tests, and so does the helper's warning. CI runs the rest.

Shortcomings

The refused-delete path itself has no test, since a protected head branch is no longer tried. A delete refused for any other reason is dropped silently.

Approved

This pull does four things. Merging now keeps a protected head branch and says why. The head-branch delete goes in a push of its own after the target moves, and a refused delete no longer fails the merge. A failed compaction after a push is reported on stderr instead of failing the push. KNOTLESS_INLINE_MAX is capped at 262144 bytes. I read the diff and found nothing that must change. The why_kept message, the protected check in spent, and the serve test all line up. The change file and both docs pages are updated as AGENTS.md asks.

I did not check CI. The refused-delete path has no test, as the body says. Silently dropping a delete refused for another reason is acceptable for now.

Merged as 2fa9ae1
Merging this pull closed these issues