the regex:
GitPython/git/diff.py
Line 372 in 6d09bb6
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 --git a/.vscode/launch.json b/.vscode/launch.json index xxxxxxx..xxxxxxxx --- a/.vscode/launch.json +++ b/.vscode/launch.json
diff --git c/.vscode/launch.json w/.vscode/launch.json index xxxxxxx..xxxxxxxx --- c/.vscode/launch.json +++ w/.vscode/launch.json
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)
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.
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')
So far a quick workaround is:
diff = ancestor_ref[0].diff(None, create_patch=True, **{'src-prefix':'a/','dst-prefix':'b/'})
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.
ceccopierangiolieugenio commented on Mar 13, 2025
thanks @Byron, is it there a workaround I can use in the meantime?
something like:
ceccopierangiolieugenio commented on Mar 13, 2025
So far a quick workaround is: