Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Unable to perform a git clean after a pnpm install with cyclic dependencies on windows #4401

@JamesSeymour

Description

@JamesSeymour

My company is looking to migrate to PNPM and we have a substantial sized monorepo (over 200 packages). Some of these packages have cyclic dependencies. For example package-1 is dependent on package-2 and package-2 is dependent on package-1. We are looking to reduce some of these cyclic dependencies, but in some cases it cannot be helped.

We have all the packages set up as workspaces and after doing a pnpm i everything works as expected. But if you run a git clean -fdx the command endlessly runs attempting to go down node_modules directories.

pnpm version:

6.31.0

Code to reproduce the issue:

cyclic-deps-test.zip

I have attached a simplified example which exhibits the same behaviour. Note this only occurs on windows, we have tested on Mac and Linux boxes without issue.

It has 4 workspaces; an app and 3 packages. If you add the files into an empty git repo, run pnpm i and then git clean -fdx from the root will see the errors.

Expected behavior:

Running git clean -fdx after a pnpm i cleans all untracked files.

Actual behavior:

The clean command continually runs with errors such as:

warning: could not open directory 'apps/app/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-3/node_modules/package-1/node_modules/package-2/node_modules/package-3/': Function not implemented

Note that I have git config --system core.longpaths true if core.longpaths is set to false, the errors change slightly to:

warning: could not open directory 'apps/app/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/package-2/node_modules/package-1/node_modules/': Filename too long

Additional information:

  • node -v prints: v12.22.10
  • Windows, macOS, or Linux?: Windows only

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions