Fix GitConfigParser ignoring multiple [include] path entries by daniel7an · Pull Request #2100 · gitpython-developers/GitPython
Problem
When an [include] section has multiple entries with the same key (e.g. multiple path values), only the last one was respected:
[include] path = ~/.config/git/maintenance.config path = ~/.config/git/my-config
Only my-config would be included. This is valid git config per git help config:
These variables can be given multiple times.
Root Cause
_included_paths() used self.items(section) which delegates to _OMD.items(). The _OMD.__getitem__ method returns only the last value for a given key, so duplicate keys (like multiple path entries) 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_key that creates a config with two path entries under a single [include] section and verifies both included files are loaded.
Fixes #2099