GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gitconfig: mnemonicPrefix conflict with create_patch · Issue #2013 · gitpython-developers/GitPython

gitconfig: mnemonicPrefix conflict with create_patch #2013

New issue
Copy link
New issue
Copy link
Closed
Bug
#2191
Closed
gitconfig: mnemonicPrefix conflict with create_patch#2013
Bug
#2191
Copy link
Labels
acknowledgedhelp wanted

Description

@ceccopierangiolieugenio
ceccopierangiolieugenio
opened on Mar 12, 2025
Issue body actions

the regex:

GitPython/git/diff.py

Line 372 in 6d09bb6

[ ](?P<a_path_fallback>"?[ab]/.+?"?)[ ](?P<b_path_fallback>"?[ab]/.+?"?)\n

is not able to match the diff generated if this flag is enabled in ~/.gitconfig:

[diff]
        mnemonicPrefix = true

because it is expecting [ab]/ as folder prefix for the diff but with mnemonicPrefix enabled it become [wc]/

Diff without mnemonicPrefix

diff --git a/.vscode/launch.json b/.vscode/launch.json
index xxxxxxx..xxxxxxxx
--- a/.vscode/launch.json
+++ b/.vscode/launch.json

Diff with mnemonicPrefix = true

diff --git c/.vscode/launch.json w/.vscode/launch.json
index xxxxxxx..xxxxxxxx
--- c/.vscode/launch.json
+++ w/.vscode/launch.json

Quick Test

repo = git.Repo('.')
branch_ref = repo.head
ancestor_ref = repo.merge_base(branch_ref, repo.refs["main"])
diff = ancestor_ref[0].diff(None, create_patch=True)
print(diff)

Activity

  1. Byron
    added
    acknowledged
    help wanted
    on Mar 12, 2025
  2. Byron commented on Mar 12, 2025

    @Byron
    Byron
    on Mar 12, 2025
    Member
    More actions

    Thanks a lot for reporting!

    To fix this, GitPython should control for this flag and turn it off when invoking Git, i.e. with git -c mnemonicPrefix=false.

    Reacted by Pier CeccoPierangioliEugenio
  3. ceccopierangiolieugenio commented on Mar 13, 2025

    @ceccopierangiolieugenio
    ceccopierangiolieugenio
    on Mar 13, 2025
    Author
    More actions

    thanks @Byron, is it there a workaround I can use in the meantime?
    something like:

    diff = ancestor_ref[0].diff(None, create_patch=True, c='diff.mnemonicPrefix=false')
  4. ceccopierangiolieugenio commented on Mar 13, 2025

    @ceccopierangiolieugenio
    ceccopierangiolieugenio
    on Mar 13, 2025
    Author
    More actions

    So far a quick workaround is:

    diff = ancestor_ref[0].diff(None, create_patch=True, **{'src-prefix':'a/','dst-prefix':'b/'})
  5. Byron
    added the
    Bug
    issue type on Jul 20, 2026
  6. Byron
    closed this as completedin #2191on Jul 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    acknowledgedhelp wanted

    Type

    Bug

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.