threads / discuss / 30247

Illegal filename characters one Windows

Subject: Illegal filename characters one Windows

## tl;dr

2 messages between Apr 15, 2012 and Apr 15, 2012.

replies: 1people: 2as markdown or json

Clemens Buchacher· Apr 15, 2012, 00:07 UTC · lore
Hi,

I recently noticed that git does not deal very well with illegal filenames on Windows. I have a repository which contains a couple of filenames like "Re: some email.eml". On a Windows box, those files get truncated to just "Re" during checkout, because ':' is an illegal character for filenames on Windows. [1]

I know that the easiest solution would be to simply remove the illegal characters on my Linux box and be done with it. But I dislike the fact that git cannot handle such filenames more gracefully.

So I have been wondering how to fix this. I have considered converting the filename to unicode or URL encoding or even just dropping the illegal characters on checkout. But no matter which conversion I choose, it will conflict with the converted filename, which would be a valid index entry itself.

If a reasonable solution is not possible, maybe we should not try to checkout such files at all, and mark them with --skip-worktree. That way one can at least use such repositories, as long as one does not have to touch any files with illegal characters in their filename. As it is, most commands are not usable because the work tree is always dirty (the files with illegal names have been "removed").

Any better ideas?
Clemens
[1] http://en.wikipedia.org/wiki/Filename
Johannes Sixt· Apr 15, 2012, 17:16 UTC · re: Clemens Buchacher · lore

Re: [msysGit] Illegal filename characters one Windows

Am 15.04.2012 02:07, schrieb Clemens Buchacher:
Show 5 quoted lines
> I recently noticed that git does not deal very well with illegal
> filenames on Windows. I have a repository which contains a couple of
> filenames like "Re: some email.eml". On a Windows box, those files get
> truncated to just "Re" during checkout, because ':' is an illegal
> character for filenames on Windows. [1]

This is a issue very similar to files named nul, aux, prn, com1 and the like; they can't be checked out, either. I've suggested to use sparse checkout in such cases; other than that, I think we don't have a solution for it.

-- Hannes

← back to recent threads