svk 2.0.1, Win32 and locales
Thomas Lauer <thomas.lauer <at> virgin.net>
2007-05-09 11:09:31 GMT
(Sorry for the empty mail I sent an hour or so ago: hit a key I
shouldn't have hit.)
I have used (or rather tested) SVK for the last two weeks in a small C
project. So far, things do look pretty good. Emboldened by this, I've
just decided to deploy a bigger project: a chaotic mixture of .doc and
.xls files (that's MS Office stuff) and a tree with my website contents,
text, binaries, warts and all.
The good news is that basically it works. The bad news is that there are
a few small, but annoying niggles which seem to be Win32 and/or locale
specific. I have some filenames (say "Tüt.txt") with [\x80-\xff]
characters in them. This is what I get when SVK tries to commit one of
these files: "Can't decode path as utf8." (The commit is aborted.)
The problem seems to arise in SVK's Util.pm, get_encoding(). This always
returns utf8 on my machine regardless of my locale or LANG settings. For
the time being I've patched get_encoding() so it returns a hard-coded
"iso-8859-1".
After that I once more tried the commit and now all files, including
those with accents etc., went through without a hitch: nice. Even nicer
is that almost everything else works as well: revert, cat, log... all
that looks good, even with filenames with non-Ascii characters in them.
However, what doesn't work *at all* are the update and diff commands
(perhaps there are others). I get a blunt "Can't encode path as
iso-8859-1." with update and a not very helpful "Invalid argument: Safe
data '--- T' was followed by non-ASCII byte 195: unable to convert
to/from UTF-8" when doing a diff.
(Continue reading)