Error updating cache for repository when a file name contains cyrillic characters

Having a Git lib repository which consists solely of sub-repositories, I encounter a problem since I added GLScene as sub-repository: https://github.com/glscene/GLScene

The error mentions:

filename contains '?', which is reserved on Windows: "GLScene/Help/???????????.pdf"

It turns out that the file is named Инсталляция.pdf

I also found that the command contains: –encoding cp1252

Removing the offending file from the repo seems to fix the problem.

ContinuaCI: 1.9.2.1365

Hi Uwe

This is an issue that we are aware of and have been working towards resolving for some time.

The problem is that we use mercurial (hg) for our repository cache (a decision taken a long time ago before git was so popular) - and unfortunately hg’s handling of cyrillic/unicode filenames on windows is virtually non existant.

So our current plan is to replace the mercurial repository cache with git (which does handle unicode properly on windows) - but this is no small undertaking. git is missing some features that we rely on from hg - so we still have some work todo to replicate that functionality (using libgit).

As a long time Mercurial fan I can understand you. Luckily there is an easy workaround, even it leaves a bad taste on the tongue.

I had to create a fork of that repo anyway, because ContinuaCI doesn’t like sub-repositories located at a different server. It is not a big problem to keep a special branch with that specific file deleted. I couldn’t read it anyway.