Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for issue where git-secrets could fail on Windows if enough files… #193

Conversation

lemonade-dm
Copy link

… where modified to be over the 32727 command line length

When git-secrets is run, for all filepaths that are part of the staged list of changes they get passed into an invocation of git grep
If there is a large number of staged files, depending on the length of each file path from the git repo root, it could result in an extremely long line being supplied to git grep
For example if the git structure is as below

/
  Include/
    TestLibrary/
      MyTestComponent1.h
      MyTestComponent2.h
...
      MyTestComponent1000.h

It would take around changes to 900 Include/TestLibrary/MyTestComponentNNNN.h files within the repo to cause the git grep to be passed an argument list that is too long

Issue #192, if available:

Description of changes:
Fixed issue where git secrets could fail if the bash invocation of git grep within the git-secrets shell script passed enough file paths that caused the command line invocation for git grep to be over 32767 characters

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

… where modified to be over the 32727 command line length

When git-secrets is run, for all filepaths that are part of the staged list of changes they get passed into an invocation of `git grep`
If there is a large number of staged files, depending on the length of each file path from the git repo root, it could result in an extremely long line being supplied to `git grep`
For example if the git structure is as below
```
/
  Include/
    TestLibrary/
      MyTestComponent1.h
      MyTestComponent2.h
...
      MyTestComponent1000.h
```

It would take around changes to 900 "Include/TestLibrary/MyTestComponentNNNN.h` files within the repo to cause the `git grep` to be passed an argument list that is too long
This allows filenames with spaces to be properly parsed as a single file when invoking `git grep`
@lemonade-dm
Copy link
Author

Any updates for reviewers on this PR

@sparr
Copy link
Contributor

sparr commented Jun 21, 2023

#153 is a more robust solution to this problem. If we don't merge that, we can re-open this.

@sparr sparr closed this Jun 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants