-
-
Notifications
You must be signed in to change notification settings - Fork 939
Fix blob filter types #1459
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
Merged
Byron
merged 9 commits into
gitpython-developers:main
from
AustinScola:ascola/fix-blob-filter-types
Jul 2, 2022
Merged
Fix blob filter types #1459
Changes from 7 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
da88a6d
Fix blob filter types
AustinScola a6ce118
Add stage type to all
AustinScola d171365
Move stage type def
AustinScola 1314d63
Change to not stringify paths
AustinScola c6a018b
Fix pathlike type annotation typo
AustinScola cc80e6b
Remove usage of `PosixPath.is_relative_to`
AustinScola 420d2af
Use generator instead of map
AustinScola ed45d5b
Fix blob filter path shorter than filter path
AustinScola da59d74
Remove stage type as parameter from blob filter test
AustinScola File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Is this not another way of writing
path1 == path2
, since all path components (here.parts
) have to be equivalent? The benefit of doing so of course is that it ignores which path separator is used, but I am having trouble to understand how this checks thatblob_path
starts with one ofself.paths
.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 think this should work because
zip
stops when the shortest of the arguments is exhausted. So it is only checking if all the path components are equivalent in the case that the length of theparts
are equal. But, when one path has more parts than the other, then it is checking that the longer path starts with the shorter path.Example:
Uh oh!
There was an error while loading. Please reload this page.
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.
Alternatively, the implementation of
PosixPath.is_relative_to
looks like this:We could do something similar to this in-place.
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 for the explanation, I see how this works now and why this is correct. The alternative has to remain a TODO until it becomes available, and looking at the code I am happy to suggest to not ever go there - the try:except clause seems like a deal-breaker to me. It's entirely up to you though.
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.
Actually, let me undo what I last said. I once again think this implementation is incorrect, as these paths are not equivalent.
The above would match even though
added_path
is not contained in base.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.
Good catch, I pushed a change that addresses this and adds a test too.