GeezerVison is showing github.com — gitconfig: mnemonicPrefix conflict with create_patch · Issue #2013 · gitpython-developers/GitPython
gitconfig: mnemonicPrefix conflict with create_patch #2013
Description
the regex:
|
[ ](?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
Byron commented on Mar 12, 2025
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
ceccopierangiolieugenio commented on Mar 13, 2025
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')
ceccopierangiolieugenio commented on Mar 13, 2025
So far a quick workaround is:
diff = ancestor_ref[0].diff(None, create_patch=True, **{'src-prefix':'a/','dst-prefix':'b/'})
Metadata
Metadata
Development
No branches or pull requestsIssue actions