fix(make): worktree-rm no longer unregisters user/ for the main checkout
`submodule deinit` is needed before `worktree remove` (a populated user/ blocks it), but worktrees share .git/config — so deiniting inside the worktree stripped submodule.user.url globally. After any `make worktree-rm` the main checkout's `git submodule status` reported `-` (not initialised) while user/ sat there fully intact, and a later `submodule update` would have had no URL to work from. Re-register with an idempotent `submodule init` after the removal. Found by tearing down the post-location-override worktree. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -200,6 +200,12 @@ worktree-rm: guard-name
|
||||
-git -C "$(WT_DIR)" submodule deinit -f user
|
||||
git worktree remove --force "$(WT_DIR)"
|
||||
git worktree prune
|
||||
# The deinit above is required (a populated user/ blocks `worktree remove`),
|
||||
# but worktrees SHARE .git/config — so it also strips submodule.user.url for
|
||||
# the MAIN checkout, leaving `git submodule status` there showing `-` (not
|
||||
# initialised) even though user/ is intact. Re-register it; init is
|
||||
# idempotent and touches config only, never the working tree.
|
||||
git submodule init
|
||||
@echo "Removed $(WT_DIR). If feat/$(NAME) is merged, drop it: git branch -d feat/$(NAME)"
|
||||
|
||||
# ── Demo content ──────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user