Comment 1 by Unknown User, Jun 5, 2006
´, U+00b4? That's an acute accent, you should be using , U+2019! But, umm, anyway, as to the actual bug report. It's entirely plausible that we're miffing some character encoding conversion somewhere, in fact I know there are bugs in that code that we haven't gotten around to fixing yet. What would be helpful here is: -- information on what command you ran exactly? E.g., it makes a difference whether you ran "mtn add myfolder/Mike´s Report.aqt" or "mtn add myfolder/" -- the dump file generated whenever monotone gives that kind of fatal error -- probably was left in _MTN/dump, or you could use --dump=<somefile> and re-run the command? -- if you know what encoding your filesystem uses, that would be _really_ helpful, but I'm not sure how you'd find that out, exactly. My guess is though that somehow that character is being written in UTF-16, and we're not converting from that to UTF-8, or something along those lines.
Comment 2 by Unknown User, Dec 18, 2006
I have a similar problem. I made a fresh new empty repository. Then I created a file with the name this_filename_contains_the_characters_å,_ä,_and_ö.txt Those are the native Swedish characters "a with a ring", "a with two dots", and "o with two dots". Then I ran: mtn list unknown I got the following error: mtn: fatal: std::logic_error: paths.cc:255: invariant 'I(utf8_validate(path))' violated mtn: this is almost certainly a bug in monotone. mtn: please send this error message, the output of 'mtn --full-version', mtn: and a description of what you were doing to monotone-devel@nongnu.org. mtn: wrote debugging log to /home/sven/test/_MTN/debug mtn: if reporting a bug, please include this file Then I patched paths.cc as follows, to see what the failing string was: --- paths.cc.original 2006-11-11 20:08:11.000000000 +0100 +++ paths.cc 2006-12-18 18:33:14.996221792 +0100 @@ -252,6 +252,9 @@ file_path::file_path(file_path::source_type type, string const & path) { MM(path); + if (!utf8_validate(path)) + for (int i=0; i<path.length(); i++) + printf("%x ", path[i]); I(utf8_validate(path)); switch (type) { When I ran "mtn list unknown" again, it printed the following sequence of numbers, in addition to the error message: 74 68 69 73 5f 66 69 6c 65 6e 61 6d 65 5f 63 6f 6e 74 61 69 6e 73 5f 74 68 65 5f 63 68 61 72 61 63 74 65 72 73 5f ffffffe5 2c 5f ffffffe4 2c 5f 61 6e 64 5f fffffff6 2e 74 78 74 So it seems that my Swedish characters became negative. I attach the _MTN/debug file. (file #11552)
Sign in to reply to this comment.
Reported by Unknown User, Apr 13, 2006