feat!: default to current repository, add --all for all ghq repos#4
Merged
Conversation
Operating on every ghq repository by default is surprising for a git subcommand and makes -d/-D a footgun across unrelated repositories. Default to the repository containing the current directory and gate the previous all-repositories behaviour behind --all.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d41bf5f91
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
git worktree remove deletes a clean linked worktree even when it is the current checkout, leaving the user inside a deleted directory. Resolve the current worktree via git rev-parse --show-toplevel and exclude it from the removal scan in both default and --all modes.
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
Breaking change. Until now
git wtcleanoperated on every ghq repository by default, which is surprising for a git subcommand and makes-d/-Da footgun across unrelated repositories.This PR flips the default:
--all→ the previous behaviour (every repo fromghq list -p).As a bonus, the default path no longer depends on
ghq, so the tool now works in a standalone repository withoutghqinstalled.Behaviour
currentRepo()resolves the primary worktree viagit worktree list --porcelain -z, so it works correctly even when invoked from inside a linked worktree.not inside a git repository (use --all to target all ghq repositories).Changes
feat: default to current repository, add--allflag (with tests).docs: update-hhelp text.docs: update README.Migration
Anyone relying on the old all-repositories behaviour must now pass
--all(e.g.git wtclean --all -d). Worth calling out prominently in the release changelog.Test
go test ./...andgo vet ./...pass.BREAKING CHANGE: git wtclean now targets only the current repository by default; use --all for the previous all-ghq behaviour.