GitVersion icon indicating copy to clipboard operation
GitVersion copied to clipboard

[ISSUE]: Recursing symlinks infinitely - `PathTooLongException`

Open ferenc-a opened this issue 9 months ago • 7 comments
trafficstars

Prerequisites

  • [x] I have written a descriptive issue title
  • [x] I have searched issues to ensure it has not already been reported

GitVersion package

GitVersion.Portable

GitVersion version

6.1.0

Operating system

Windows

What are you seeing?

Executing gitversion /updateprojectfiles recurses symlinked directories deeply, then fails with System.IO.PathTooLongException. This happens both on Mac and Windows.

The offending symlink looks like this: I have a git repo under C:\...\root, and an npm package called @library/package under C:\...\root\packages\library, and within it, an npm package called examples. examples imports library like this: "@library/package": "file:..", so npm makes a symlink to library in examples/node_modules/@library/package. node_modules is in my root .gitignore, so this is all the more unexpected.

What is expected?

GitVersion should stop following symlinks / ignore files that are in .gitignore / at least provide an option to ignore specific directories.

Steps to Reproduce

run gitversion /updateprojectfiles

This is my GitVersion.yaml:

workflow: GitFlow/v1
branches:
  release:
    increment: None

RepositoryFixture Test

No response

Output log or link to your CI build (if appropriate).

C:\...\root> gitversion /updateprojectfiles
{
  ...this works fine
}
INFO [25-02-07 12:49:21:88] Applicable build agent found: 'LocalBuild'.
INFO [25-02-07 12:49:21:92] Working directory: C:\...\root
INFO [25-02-07 12:49:21:94] Project root is: C:\...\root\
INFO [25-02-07 12:49:21:94] DotGit directory is: C:\...\root\.git
INFO [25-02-07 12:49:21:94] Branch from build environment:
INFO [25-02-07 12:49:21:94] Found configuration file at 'C:\...\root\GitVersion.yml'
INFO [25-02-07 12:49:21:96] -< Begin: Loading version variables from disk cache file C:\...\root\.git\gitversion_cache\EE1EE6CA57958F7FC7479292CB0E7AF381DE305E >-
INFO [25-02-07 12:49:22:00] -< End: Loading version variables from disk cache file C:\...\root\.git\gitversion_cache\EE1EE6CA57958F7FC7479292CB0E7AF381DE305E (Took: 43.22ms) >-
INFO [25-02-07 12:49:22:00] Found configuration file at 'C:\...\root\GitVersion.yml'
ERROR [25-02-07 12:51:41:31] An unexpected error occurred:
System.IO.PathTooLongException: The path 'C:\...\root\packages\library\examples\node_modules\@library/package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\node_modules\@library\package\examples\child' is too long, or a component of the specified path is too long.
   at System.IO.Enumeration.FileSystemEnumerator`1.CreateRelativeDirectoryHandle(ReadOnlySpan`1 relativePath, String fullPath)
   at System.IO.Enumeration.FileSystemEnumerator`1.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at GitVersion.Output.AssemblyInfo.ProjectFileUpdater.GetProjectFiles(AssemblyInfoContext context)+MoveNext() in /_/src/GitVersion.Output/AssemblyInfo/ProjectFileUpdater.cs:line 199
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at GitVersion.Output.AssemblyInfo.ProjectFileUpdater.Execute(GitVersionVariables variables, AssemblyInfoContext context) in /_/src/GitVersion.Output/AssemblyInfo/ProjectFileUpdater.cs:line 29
   at GitVersion.GitVersionOutputTool.UpdateAssemblyInfo(GitVersionVariables variables) in /_/src/GitVersion.Output/GitVersionOutputTool.cs:line 43
   at GitVersion.GitVersionExecutor.RunGitVersionTool(GitVersionOptions gitVersionOptions) in /_/src/GitVersion.App/GitVersionExecutor.cs:line 73
INFO [25-02-07 12:51:41:31] Please run `git log --graph --format="%h %cr %d" --decorate --date=relative --all --remotes=*` to see the git graph. This can help you troubleshoot any issues.

ferenc-a avatar Feb 07 '25 14:02 ferenc-a

This issue has been automatically marked as stale because it has not had recent activity. After 30 days from now, it will be closed if no further activity occurs.

github-actions[bot] avatar May 09 '25 11:05 github-actions[bot]

I don't think this has been resolved.

ferenc-a avatar May 09 '25 11:05 ferenc-a

The problem seems to stem from the following piece of code:

https://github.com/GitTools/GitVersion/blob/71d9a2553583f5647c415c95a5cb784c6c914a2e/src/GitVersion.Output/AssemblyInfo/ProjectFileUpdater.cs#L193-L198

I wonder if this:

fileSystem.Directory.EnumerateFiles(workingDirectory, "*", SearchOption.AllDirectories).Where(IsSupportedProjectFile))

…could perhaps be rewritten as:

fileSystem.Directory.EnumerateFiles(workingDirectory, "*.csproj;*.fsproj;*.vbproj", SearchOption.AllDirectories)

Not sure that would fix the problem, but it seems like a good idea to allow the file system to enumerate the correct files instead of enumerating all files and then reducing them to just the project files. Thoughts about this one @arturcic?

We might want to set the MaxRecursionDepth as well.

asbjornu avatar May 09 '25 11:05 asbjornu

I guess that is worth trying, @ferenc-a are you able to run the current main branch with your repository and the changes @asbjornu mentioned?

arturcic avatar May 09 '25 12:05 arturcic

I don't really want to go through the whole process of cloning the repo, setting up the environment, building and finding where the right exe is and so on. Please post an exe with the change here, if possible.

ferenc-a avatar May 09 '25 12:05 ferenc-a

It would be nice if we were able to produce executables directly from pull requests, but we don't have that capability yet. As no one in the core team has the problem you're experiencing here @ferenc-a, we don't have a huge incentive to fix this. It would therefore be much appreciated if you could go through the hassle of cloning, patching, building, and executing GitVersion locally yourself. 🙏🏼

asbjornu avatar May 09 '25 12:05 asbjornu

What command am I supposed to execute and where will the resulting exe be? If you want me to do this at least link the instructions, I couldn't see anything relevant in CONTRIBUTING.md or after skimming the docs site. I still think it would be way easier for someone already developing this to change those lines and send the exe, I don't think you should expect people to have the relevant dotnet setup and know-how either.

ferenc-a avatar May 09 '25 12:05 ferenc-a

This issue has been automatically marked as stale because it has not had recent activity. After 30 days from now, it will be closed if no further activity occurs.

github-actions[bot] avatar Aug 08 '25 11:08 github-actions[bot]

Please try this on your side, or help me with the setup so I can test it.

ferenc-a avatar Aug 08 '25 11:08 ferenc-a

I've submitted #4647 which may fix this problem. We'll let you know once it's available in GitVersion 6.4 so you can test it, @ferenc-a.

asbjornu avatar Aug 08 '25 23:08 asbjornu

:tada: This issue has been resolved in version 6.4.0 :tada: The release is available on:

Your GitReleaseManager bot :package::rocket:

gittools-bot avatar Aug 09 '25 21:08 gittools-bot

@ferenc-a, please take GitVersion 6.4.0 for a spin and report back your findings! :)

asbjornu avatar Aug 13 '25 10:08 asbjornu

It did solve my issue, thank you!

ferenc-a avatar Aug 13 '25 10:08 ferenc-a

@ferenc-a awesome, thanks for letting us know! 🙏🏼

asbjornu avatar Aug 13 '25 10:08 asbjornu