Repository navigation
Guard remote deletes with a lease and fix five review findings - #11
Merged
Merged
Conversation
A remote delete now carries --force-with-lease on the commit the last fetch saw, so the remote refuses when a teammate pushed after it. A branch someone else already deleted counts as deleted. - A reload that lands on the confirm screen closes it: the new list had no commit counts, and a fetch selected more branches. - The remote result and the push restore command name the remote's commit (branch.upSha), not the local tip. - The force retry runs as cmds on the deleting screen (item 34). - d and u wait while an undo runs: its answer indexes m.results. - m waits for the merge status, like x and d. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Six fixes from an analysis of v0.1.2. Each one was reproduced in a throwaway repository first.
--force-with-leaseon the commit the tracking ref was at. A lease refusal runsgit ls-remote: a branch someone else already deleted counts as deleted. A gone upstream (no tracking ref) refuses the remote delete.p, selected more branches. A reload now closes the screen with a status line.git pushrestore line used the local tip. They now use the remote's commit (branch.upSha).Update(item 34). It now runs as one cmd per branch on the deleting screen.dand a secondunow wait while an undo runs.mdid not wait for the merge status. During the load it selected nothing.Tests
review_test.go, one per fix. Each fails against the old code.main_test.gochanged: three drive the background force retry, one gives its hand-made branch the remote commit.go test -race,go vetandgofmtare clean.Not in this PR
tag.gpgsignbreaks two of them locally).vobeysdiff.external.🤖 Generated with Claude Code