Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Fix GitConfigParser ignoring multiple [include] path entries#2100

Merged
Byron merged 1 commit intogitpython-developers:mainfrom
daniel7an:fix-issue-2099-multiple-includes
Feb 14, 2026
Merged

Fix GitConfigParser ignoring multiple [include] path entries#2100
Byron merged 1 commit intogitpython-developers:mainfrom
daniel7an:fix-issue-2099-multiple-includes

Conversation

@daniel7an
Copy link
Contributor

Problem

When an[include] section has multiple entries with the same key (e.g. multiplepath values), only the last one was respected:

[include]path=~/.config/git/maintenance.configpath=~/.config/git/my-config

Onlymy-config would be included. This is valid git config pergit help config:

These variables can be given multiple times.

Root Cause

_included_paths() usedself.items(section) which delegates to_OMD.items(). The_OMD.__getitem__ method returns only thelast value for a given key, so duplicate keys (like multiplepath entries) were lost.

Fix

Use_OMD.items_all() to retrieveall values for each key in include/includeIf sections, ensuring every path is processed.

Test

Addedtest_multiple_include_paths_with_same_key that creates a config with twopath entries under a single[include] section and verifies both included files are loaded.

Fixes#2099

When an [include] section has multiple entries with the same key (e.g.multiple 'path' values), only the last one was respected. This is because_included_paths() used self.items(section) which delegates to _OMD.items(),and _OMD.__getitem__ returns only the last value for a given key.Fix by using _OMD.items_all() to retrieve all values for each key in theinclude/includeIf sections, ensuring all paths are processed.Fixesgitpython-developers#2099
Copy link
Contributor

CopilotAI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Pull request overview

This PR fixes a bug where GitConfigParser only respected the lastpath entry when multiplepath values were specified under a single[include] or[includeIf] section. Git config allows multiple values for the same key (as documented ingit help config), but GitPython was silently ignoring all but the last value due to using_OMD.items() which only returns the last value for each key.

Changes:

  • Modified_included_paths() to use a new_all_items() helper that calls_OMD.items_all() to retrieve all values for duplicate keys
  • Applied the fix to all four include scenarios: basic[include], and[includeIf] with gitdir, onbranch, and hasconfig conditions
  • Added comprehensive test coverage for multiple path entries under a single[include] section

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
git/config.pyAdded_all_items() helper function and updated all four call sites in_included_paths() to use it instead ofself.items()
test/test_config.pyAddedtest_multiple_include_paths_with_same_key to verify multiple path entries are all processed correctly

💡Add Copilot custom instructions for smarter, more guided reviews.Learn how to get started.

@Byron
Copy link
Member

Thanks a lot, it's much appreciated.

@ByronByron merged commit22e0b52 intogitpython-developers:mainFeb 14, 2026
33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

Copilot code reviewCopilotCopilot left review comments

Assignees

No one assigned

Labels

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

GitConfigParser ignores multiple [include] paths

3 participants

@daniel7an@Byron

[8]ページ先頭

©2009-2026 Movatter.jp