Skip to content

git node release --promote doesn't support worktrees #906

Description

@targos

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.

Activity

  1. richardlau commented on Feb 13, 2025

    @richardlau
    Member

    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).

  2. richardlau commented on Feb 13, 2025

    @richardlau
    Member

    (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.)

  3. aduh95 commented on Feb 13, 2025

    @aduh95
    Contributor

    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 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions