-
-
Notifications
You must be signed in to change notification settings - Fork 906
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 iter_change_type diff renamed property to prevent warning #1918
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.
Thanks a for investigating this issue!
Unfortunately, no existing test fails, showing wrong expectations, which means that it's entirely unclear what this change does. Since the diff-code is confusing enough as it is, any change must be accompanied by a test that protects it from regression and makes clear what the purpose of the change is.
Of course I understand that producing a test that fails without this change, ideally pushed in a commit before this one, is additional work, and it's understandable this request might go beyond what you can provide. If so, please feel free to close this PR, but otherwise, please do take your time, it's appreciated.
OK, I expected this turn of events 😅, I'll see what I can do over the week. EDIT: Lines 102 to 128 in 14066e2
I'll hijack this loose rule and just add a test for lack of warnings when running the EDIT2: Or in this file https://github.com/gitpython-developers/GitPython/blob/main/test/deprecation/test_basic.py 👌 |
Thanks a lot, and please do! And maybe after doing that, putting matters into their own test won't be hard anymore, but if not, also no problem at all. |
There you go, I added the test to the other deprecation tests in |
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.
My apologies, I realize my mistake now! rename
is deprecated and was used internally, even though renamed_file
should be used.
I thought this change is a affecting the logic of the diff, even though it's not doing that at all.
🤦♂️
Oh well, thanks again for bearing with me here.
|
||
def test_diff_iter_change_type(diffs: "DiffIndex") -> None: | ||
"""The internal DiffIndex.iter_change_type function issues no deprecation warning.""" | ||
with assert_no_deprecation_warning(): |
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.
There must have been a misunderstanding. It's not about deprecation warnings, it's about adding a test that fails without the change presented here, while making clear what the issue truly is.
Hello 👋,
in #1886 and e7dec7d a proper warning message was introduced for the usage of
Diff.renamed
pointing to useDiff.renamed_file
.However, the usage of this property wasn't changed in the
iter_change_type
(since 3 years at that), so the internals use deprecated code 😞GitPython/git/diff.py
Lines 328 to 329 in 9fbfb71
Given that the code wasn't reported yet, perhaps I'm doing something wrong using the
iter_change_type
and there are better ways 👀 I'm using a custom MkDocs hook to run GitPython and check for renames to automatically create redirects mappings for paths, and another plugin handles the redirect creation for the static pages.Here is the line which triggered the warning
And the CI:
Warning
As this is a one line change, I took the liberty to omit setting up an environment and just used the GitHub GUI to make a small change.
I also didn't investigate deeper to check if the
iter_change_type
has any tests.Thanks for your time ✌️