texnic
texnic

Reputation: 4098

Mercurial: Problem with non-ascii letters in filenames between Windows and Linux

I have a central Hg repository on a samba server, and two working copies, one on a Ubuntu and one on a Windows 7 machine. Everything worked fine until I, by mistake, added to the project a file with a Russian letter in the name. I've done it in Linux. Mercurial has happily accepted it and in Linux everything still works. However I've discovered that I cannot pull changesets to Windows any longer. For hg pull I get

pulling from ...
searching for changes
adding changesets
transaction abort!
rollback completed
abort: empty or missing revlog for figures/interfDðÁsign.svg

(The problematc filename should be interfDеsign, with Cyrillic 'е' in it.) I've renamed the file in Linux, committed and pushed the change, and can even see this change if I do hg in in Windows. But I cannot pull it! Is there any way to correct this problem and make the repository work with Windows again?

Upvotes: 5

Views: 2543

Answers (2)

texnic
texnic

Reputation: 4098

I've found another solution, or rather a work around. With the Convert extension, it is possible to rename the poorly named file, i.e. to correct the mistake done long ago. In this particular case it worked fine. Of course, one should be careful that there are no dependencies on the badly named file in the project, and also some commit messages may get meaningless.

The advantage of this method is that other people don't have to install a non-standard extension for the mere sake of being able to check out an old changeset with a very wrong file name.

Upvotes: 0

xanatos
xanatos

Reputation: 111930

Read this... http://groups.google.com/group/mercurial_general/browse_thread/thread/300a3f5e1a23592e There are no good news :-)

BUT

there could be a fix: try this https://www.mercurial-scm.org/wiki/FixUtf8Extension

Upvotes: 2

Related Questions