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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bug when grepping lines that contain numbers surrounded by colons #566

Merged
merged 2 commits into from Apr 13, 2022

Conversation

4-Eyes
Copy link
Contributor

@4-Eyes 4-Eyes commented Mar 15, 2022

Signed-off-by: James Fairbairn jamesaf112@gmail.com

Your checklist for this pull request

馃毃Please review the guidelines for contributing to this repository.

  • Ensure all commits include DCO sign-off.
  • Ensure that your contributions pass unit testing.
  • Ensure that your contributions contain documentation if applicable.

Description

Recently I discovered a bug where the grep function was not parsing certain lines correctly. In particular, lines that contained a digit surrounded by colons. For example, take the following file:

example :20:

If you called grep('example'), it would return incorrect file paths including the example and the line number would be 20.

Upon exploring this issue, I discovered that it was due to the regex used for parsing. Effectively, the first capture group needed to be greedy to fix the issue.

@jcouball
Copy link
Member

@jcouball jcouball commented Apr 13, 2022

@4-Eyes I assume you meant that "the first capture group needed to be non-greedy to fix the issue."

Copy link
Member

@jcouball jcouball left a comment

Thanks for the contribution!

At some point we need to move away from fixtures like test/files/working because they cause so many files to have to be changed when a test case is added.

@jcouball jcouball merged commit 018d919 into ruby-git:master Apr 13, 2022
7 of 8 checks passed
@jcouball jcouball mentioned this pull request Apr 17, 2022
3 tasks
@4-Eyes
Copy link
Contributor Author

@4-Eyes 4-Eyes commented Apr 19, 2022

@4-Eyes I assume you meant that "the first capture group needed to be non-greedy to fix the issue."

Yes, I did mean that. I'm glad you understood me regardless.

p-mongo pushed a commit to p-mongodb/ruby-git that referenced this issue May 27, 2022
鈥' into mine

* p/diff-submodule: (36 commits)
  Support --submodule option to git diff.
  Support the --all option for git fetch (ruby-git#583)
  Workaround to get JRuby build working (ruby-git#582)
  Update README.md (ruby-git#580)
  Make the directory param to Git.clone optional (ruby-git#578)
  Make Git::URL.clone_to handle cloning to bare and mirror repos (ruby-git#577)
  Add Git::URL #parse and #clone_to methods (ruby-git#575)
  Use the head version of yard (ruby-git#573)
  Release v1.11.0
  Supress unneeded test output (ruby-git#570)
  Add support for fetch options "--force/-f" and "--prune-tags/-P". (ruby-git#563)
  Fix bug when grepping lines that contain numbers surrounded by colons (ruby-git#566)
  remove from maintainer (ruby-git#567)
  Address command line injection in Git::Lib#fetch
  Release v1.10.2 (ruby-git#561)
  Add create-release, setup, and console dev scripts (ruby-git#560)
  Store tempfile objects to prevent deletion during tests (ruby-git#555)
  Release v1.10.1 (ruby-git#553)
  Properly escape double quotes in shell commands on Windows (ruby-git#552)
  Properly unescape diff paths (ruby-git#504)
  ...

* p/set-url-push: (36 commits)
  Add :push option to remote_set_url.
  Support the --all option for git fetch (ruby-git#583)
  Workaround to get JRuby build working (ruby-git#582)
  Update README.md (ruby-git#580)
  Make the directory param to Git.clone optional (ruby-git#578)
  Make Git::URL.clone_to handle cloning to bare and mirror repos (ruby-git#577)
  Add Git::URL #parse and #clone_to methods (ruby-git#575)
  Use the head version of yard (ruby-git#573)
  Release v1.11.0
  Supress unneeded test output (ruby-git#570)
  Add support for fetch options "--force/-f" and "--prune-tags/-P". (ruby-git#563)
  Fix bug when grepping lines that contain numbers surrounded by colons (ruby-git#566)
  remove from maintainer (ruby-git#567)
  Address command line injection in Git::Lib#fetch
  Release v1.10.2 (ruby-git#561)
  Add create-release, setup, and console dev scripts (ruby-git#560)
  Store tempfile objects to prevent deletion during tests (ruby-git#555)
  Release v1.10.1 (ruby-git#553)
  Properly escape double quotes in shell commands on Windows (ruby-git#552)
  Properly unescape diff paths (ruby-git#504)
  ...
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.

None yet

2 participants