-
-
Notifications
You must be signed in to change notification settings - Fork 954
Fix repo.index.diff("HEAD", create_patch=True) always returning an empty list #948
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am absolutely amazed by your contribution, and truly value the time and energy you must put into them!
Please let me know if you can think of anything that I can do to make your life as a contributor easier.
Thanks @Byron! I appreciate your willingness to entertain these PRs and how promptly you review them, it makes contributing fun 👍
This PR resolves the issue reported in #852
As @jadinm correctly identified in #852, this bug centers around the fact that the regex utilized by
_index_from_patch_format()
ingit/diff.py
always expects the first line of the diff to have thea
file first, thenb
:When the
other
passed torepo.index.diff(other)
is notNone
the-R
argument is added to the git command, resulting in the positions of thea
andb
files being flipped in the output and causing the_index_from_patch_format()
function invoked by thecreate_patch
option to not find a regex match:This fix makes the regex slightly more permissive, allowing it to match either order of the
a
andb
files in the output ofgit diff
.For test coverage of this change I added assertions to an existing test within
test_diff.py
that set up everything needed to reproduce this bug.Massive props to @jadinm, their troubleshooting and feedback on the issue significantly shortened the investigation required to get this one sorted out 🎉