Skip to content

Conversation

@xarx00
Copy link
Contributor

This fix allows support for non-ascii filenames, both in workdir and repos. For instance, when your workdir contains non-ascii (0-255) characters, git.Repo.clone_from() didn't work.

Implementation:
It turned out that the amount of necessary changes is not big. The main problem was in that git.compat.defenc was set to sys.getdefaultencoding() instead of sys.getfilesystemencoding().
sys.getfilesystemencoding() requires Python 2.3. The from builtins import str fixes several str(epath) etc. conversions that were causing UnicodeEncodeError. I have no idea what python2 version is necessary for that.

I have tested the fix on Windows7 Pro x64, both with Python 2.7.13 and 3.7.3.

@codecov-io
Copy link

codecov-io commented Apr 5, 2019

Codecov Report

Merging #860 into master will decrease coverage by 1.24%.
The diff coverage is 80%.

Impacted file tree graph

@@ Coverage Diff @@## master #860 +/- ## ========================================== - Coverage 94.79% 93.54% -1.25%  ========================================== Files 59 59 Lines 9603 9607 +4 ========================================== - Hits 9103 8987 -116 - Misses 500 620 +120
Impacted FilesCoverage Δ
git/repo/base.py94.12% <100%> (-1.25%)⬇️
git/compat.py41.21% <75%> (-23.61%)⬇️
git/test/test_util.py90.41% <0%> (-8.22%)⬇️
git/test/lib/asserts.py61.53% <0%> (-7.7%)⬇️
git/test/lib/helper.py85.95% <0%> (-6.18%)⬇️
git/test/test_base.py96.59% <0%> (-2.28%)⬇️
git/test/test_git.py96.64% <0%> (-2.24%)⬇️
git/objects/submodule/base.py93.08% <0%> (-1.42%)⬇️
git/test/test_submodule.py97.93% <0%> (-1.32%)⬇️
... and 13 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1f66e25...a77eab2. Read the comment docs.

@ghost ghost merged commit a77eab2 into gitpython-developers:masterJul 20, 2019
@Byron
Copy link
Member

Thanks a lot, and I would love to merge this. However, it appears the PR breaks a single test in Py 2.7, and I am not entirely sure these are related. So I am merging to test it in master, and revert as needed.

@Byron
Copy link
Member

Unfortunately the build still fails on top of master for the same reason as before. I have no idea why this is happening.
What do you recommend?

This pull request was closed.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants

@xarx00@codecov-io@Byron