bug(prune): --delete-branches --remote deletes branches never shown by any preview, and reports counts instead of names #301
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#301
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Live occurrence, 2026-07-20 (transcript below genericized; counts exact).
What happened
The problems
Two remote branches were deleted that no output ever named. The dry run listed 34; the delete removed 36 remote branches. The dry-run hint even acknowledges the widening ("widens the deletion set") - but its own suggested re-run puts
--delete-branchesand--remotetogether, so the natural next command deletes a set that was never previewed. The safe flow it presumably intends (runprune --remoteas a dry run first, read the widened list, then add--delete-branches) is neither stated nor enforced.The deletion output is counts-only. "Deleted 36 remote branch(es)" leaves no record of which branches died, so the two never-previewed deletions cannot even be identified after the fact. Every other destruction surface in madtea names what it acts on; prune's execute path should too - at minimum for anything not shown by the preceding preview.
This is the same class as #63 (dry-run lists fewer than
--remotedeletes), addressed by PR #100's set-parity work - the combined--delete-branches --remoteinvocation is evidently still outside that parity guarantee.The deletions themselves were content-verified merged branches (no work lost - that guarantee held). This is a visibility/consent-shape bug, not a data-loss bug.
Acceptance
--remotefirst)--delete-branches --remotepath specifically (the #100 parity coverage extended to this invocation shape)