Fix GitConfigParser ignoring multiple [include] path entries #2100
+51
−4
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.
Problem
When an
[include]section has multiple entries with the same key (e.g. multiplepathvalues), only the last one was respected:Only
my-configwould be included. This is valid git config pergit help config:Root Cause
_included_paths()usedself.items(section)which delegates to_OMD.items(). The_OMD.__getitem__method returns only the last value for a given key, so duplicate keys (like multiplepathentries) were lost.Fix
Use
_OMD.items_all()to retrieve all values for each key in include/includeIf sections, ensuring every path is processed.Test
Added
test_multiple_include_paths_with_same_keythat creates a config with twopathentries under a single[include]section and verifies both included files are loaded.Fixes #2099