I edit a file called
files/en-us/glossary/bézier_curve/index.html and then type
git status and I get this:
▶ git status ... Changes not staged for commit: ... modified: "files/en-us/glossary/b\303\251zier_curve/index.html" ...
What's that?! First of all, I actually had this wrapped in a Python script that uses
GitPython to analyze the output of
for change in repo.index.diff(None):. So I got...
FileNotFoundError: [Errno 2] No such file or directory: '"files/en-us/glossary/b\\303\\251zier_curve/index.html"'
At first, I thought it was something wrong with how I use
GitPython and thought I could force some sort of conversion to UTF-8 with Python. That, and to strip the quotation parts with something like
path = path[1:-1] if path.startwith('"') else path
After much googling and experimentation, what totally solved all my problems was to run:
▶ git config --global core.quotePath false
Now you get...:
▶ git status ... Changes not staged for commit: ... modified: files/en-us/glossary/bézier_curve/index.html ...
And that also means it works perfectly fine with any
GitPython code that does something with the
Also, we I use the
git-diff-action GitHub Action which would fail to spot files that contained umlauts but now I run this:
steps: - uses: actions/checkout@v2 + + - name: Config git core.quotePath + run: git config --global core.quotePath false + - uses: email@example.com id: git_diff_content with: