node-core-utils icon indicating copy to clipboard operation
node-core-utils copied to clipboard

`git node release --promote` doesn't support worktrees

Open targos opened this issue 11 months ago • 3 comments

On my computer, I have several git worktrees (one for main, one for each release line, etc).

The promotion fails on the "cherry-pick to main" step, because I'm running it from the v23.x worktree and main is checked out in another one:

✔ Cherry-pick release commit to the default branch? Yes
fatal: 'main' is already used by worktree at '/Users/mzasso/git/nodejs/node'
Error: git checkout,main failed: 128
    at ChildProcess.<anonymous> (file:///Users/mzasso/.volta/tools/image/packages/@node-core/utils/lib/node_modules/@node-core/utils/lib/run.js:45:21)
    at ChildProcess.emit (node:events:507:28)
    at maybeClose (node:internal/child_process:1101:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5)
    at Process.callbackTrampoline (node:internal/async_hooks:130:17) {
  code: 128,
  messageOnly: true
}

I don't know if that can be fixed.

targos avatar Feb 13 '25 17:02 targos

The tool could run/parse the output of git worktree list --porcelain and potentially switch directories (but it should ask just in case the user is in the middle of work in the worktree for the main branch).

richardlau avatar Feb 13 '25 17:02 richardlau

(FWIW I haven't tried the promote tooling from ncu, but I do use git worktrees and have always had to switch from my release line specific worktree to my main worktree to do the merges back to main.)

richardlau avatar Feb 13 '25 17:02 richardlau

I’ve never even heard of git work trees, so that might explain the lack of support – I still haven’t figured out why everyone is using branches on their local clones, so by all means don’t wait on me 😅

aduh95 avatar Feb 13 '25 18:02 aduh95