{"thread":{"id":"43064","subject":"Re: Non-ASCII paths and git-cvsserver","startedAt":"2006-11-09T11:11:42Z","lastAt":"2006-11-14T10:40:50Z","messageCount":11,"participants":["Junio C Hamano","Robin Rosenberg","Martin Langhoff","sf","Jakub Narebski"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"296800","messageId":"45530CEE.6030008@b-i-t.de","threadId":"43064","inReplyTo":null,"subject":"Non-ASCII paths and git-cvsserver","fromName":"sf","fromEmail":"sf@b-i-t.de","sentAt":"2006-11-09T11:11:42Z","receivedAt":"2006-11-09T11:11:42Z","isPatch":false,"sender":{"key":"sf@b-i-t.de","avatar":null},"body":"Hello,\n\nI want to access a git repository via git-cvsserver. The problem is that \nthe repository contains paths with umlauts. These paths come out quoted \nand escaped when checked out with cvs.\n\nTest case:\n\n#! /bin/sh\n\nset -e -u -x\n\nWORK='/tmp/gittest'\nFILE=$'\\303\\244'\n\nmkdir \"${WORK}\"\nmkdir \"${WORK}/git\"\n\n#trap 'rm -r \"${WORK}\"' EXIT\n\ncd \"${WORK}/git\"\n\ngit init-db\ngit repo-config gitcvs.enabled 1\ngit repo-config gitcvs.logfile \"${WORK}/git/.git/cvslog.txt\"\n\ntouch \"${FILE}\"\ngit add \"${FILE}\"\ngit commit -a -mx\n\ncd \"${WORK}\"\n\nCVS_SERVER='git-cvsserver'\nexport CVS_SERVER\n\ncvs -d \":fork:${WORK}/git/.git\" co master\n\nls master\n\n### end\n\n\nThis is what I get:\n\n+ WORK=/tmp/gittest\n+ FILE=$'\\303\\244'\n+ mkdir /tmp/gittest\n+ mkdir /tmp/gittest/git\n+ cd /tmp/gittest/git\n+ git init-db\ndefaulting to local storage area\n+ git repo-config gitcvs.enabled 1\n+ git repo-config gitcvs.logfile /tmp/gittest/git/.git/cvslog.txt\n+ touch $'\\303\\244'\n+ git add $'\\303\\244'\n+ git commit -a -mx\nCommitting initial tree 23d6145738bba135994775c19d6e8ae707d399ee\n+ cd /tmp/gittest\n+ CVS_SERVER=git-cvsserver\n+ export CVS_SERVER\n+ cvs -d :fork:/tmp/gittest/git/.git co master\ncvs checkout: Updating master\nU master/\"\\303\\244\"\n+ ls master\n\"\\303\\244\"  CVS\n\n\nI do not speak perl so can anyone help?\n\nRegards\n\nStephan\n"},{"id":"296624","messageId":"46a038f90611101059h1844bae8o9cc9d986eaaddd7b@mail.gmail.com","threadId":"43064","inReplyTo":"45530CEE.6030008@b-i-t.de","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2006-11-10T18:59:09Z","receivedAt":"2006-11-10T18:59:09Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"On 11/9/06, sf <sf@b-i-t.de> wrote:\n> I want to access a git repository via git-cvsserver. The problem is that\n> the repository contains paths with umlauts. These paths come out quoted\n> and escaped when checked out with cvs.\n\nThanks for the detailed report! I am travelling right now, so with\n\"high latency\" and on a machine that's missing sqlite libs :-/\n\nBut I'll give it a go anyway.\n\nDoes this mini-patch help? You'll need Perl 5.8.x and probably a\nrecent SQLite for this.\n\ndiff --git a/git-cvsserver.perl b/git-cvsserver.perl\nindex 8817f8b..c534de5 100755\n--- a/git-cvsserver.perl\n+++ b/git-cvsserver.perl\n@@ -22,6 +22,9 @@ use Fcntl;\n use File::Temp qw/tempdir tempfile/;\n use File::Basename;\n\n+binmode(STDIN,  ':utf8');\n+binmode(STDOUT, ':utf8');\n+\n my $log = GITCVS::log->new();\n my $cfg;\n\n@@ -2104,6 +2107,11 @@ sub new\n         $self->{tables}{$table} = 1;\n     }\n\n+    # this will set the encoding for new DBs\n+    # or return false for existing DBs that are not\n+    # utf-8\n+    $self->{dbh}->do('PRAGMA encoding = \"UTF-8\"');\n+\n     # Construct the revision table if required\n     unless ( $self->{tables}{revision} )\n"},{"id":"294929","messageId":"7vvelnjd4p.fsf@assigned-by-dhcp.cox.net","threadId":"43064","inReplyTo":"45530CEE.6030008@b-i-t.de","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-11-10T19:49:26Z","receivedAt":"2006-11-10T19:49:26Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"sf <sf@b-i-t.de> writes:\n\n> I want to access a git repository via git-cvsserver. The problem is\n> that the repository contains paths with umlauts. These paths come out\n> quoted and escaped when checked out with cvs.\n\nI think this is because the cvsserver invokes diff-tree and\nls-tree without -z and the output from these command quote\nnon-ascii letters as unsafe.\n\nMartin's sqlite may probably be needed as well, but regardless\nof that something like this patch is needed -- otherwise what \npopulates sqlite database will be quoted to begin with so it\nwould not help much.\n\nI've tested with your reproduction recipe, but otherwise not\ntested this patch.\n\n-- >8 --\n\ndiff --git a/git-cvsserver.perl b/git-cvsserver.perl\nindex 8817f8b..ca519b7 100755\n--- a/git-cvsserver.perl\n+++ b/git-cvsserver.perl\n@@ -2343,67 +2343,72 @@ sub update\n \n         if ( defined ( $lastpicked ) )\n         {\n-            my $filepipe = open(FILELIST, '-|', 'git-diff-tree', '-r', $lastpicked, $commit->{hash}) or die(\"Cannot call git-diff-tree : $!\");\n+            my $filepipe = open(FILELIST, '-|', 'git-diff-tree', '-z', '-r', $lastpicked, $commit->{hash}) or die(\"Cannot call git-diff-tree : $!\");\n+\t    local ($/) = \"\\0\";\n             while ( <FILELIST> )\n             {\n-                unless ( /^:\\d{6}\\s+\\d{3}(\\d)\\d{2}\\s+[a-zA-Z0-9]{40}\\s+([a-zA-Z0-9]{40})\\s+(\\w)\\s+(.*)$/o )\n+\t\tchomp;\n+                unless ( /^:\\d{6}\\s+\\d{3}(\\d)\\d{2}\\s+[a-zA-Z0-9]{40}\\s+([a-zA-Z0-9]{40})\\s+(\\w)$/o )\n                 {\n                     die(\"Couldn't process git-diff-tree line : $_\");\n                 }\n+\t\tmy ($mode, $hash, $change) = ($1, $2, $3);\n+\t\tmy $name = <FILELIST>;\n+\t\tchomp($name);\n \n-                # $log->debug(\"File mode=$1, hash=$2, change=$3, name=$4\");\n+                # $log->debug(\"File mode=$mode, hash=$hash, change=$change, name=$name\");\n \n                 my $git_perms = \"\";\n-                $git_perms .= \"r\" if ( $1 & 4 );\n-                $git_perms .= \"w\" if ( $1 & 2 );\n-                $git_perms .= \"x\" if ( $1 & 1 );\n+                $git_perms .= \"r\" if ( $mode & 4 );\n+                $git_perms .= \"w\" if ( $mode & 2 );\n+                $git_perms .= \"x\" if ( $mode & 1 );\n                 $git_perms = \"rw\" if ( $git_perms eq \"\" );\n \n-                if ( $3 eq \"D\" )\n+                if ( $change eq \"D\" )\n                 {\n-                    #$log->debug(\"DELETE   $4\");\n-                    $head->{$4} = {\n-                        name => $4,\n-                        revision => $head->{$4}{revision} + 1,\n+                    #$log->debug(\"DELETE   $name\");\n+                    $head->{$name} = {\n+                        name => $name,\n+                        revision => $head->{$name}{revision} + 1,\n                         filehash => \"deleted\",\n                         commithash => $commit->{hash},\n                         modified => $commit->{date},\n                         author => $commit->{author},\n                         mode => $git_perms,\n                     };\n-                    $self->insert_rev($4, $head->{$4}{revision}, $2, $commit->{hash}, $commit->{date}, $commit->{author}, $git_perms);\n+                    $self->insert_rev($name, $head->{$name}{revision}, $hash, $commit->{hash}, $commit->{date}, $commit->{author}, $git_perms);\n                 }\n-                elsif ( $3 eq \"M\" )\n+                elsif ( $change eq \"M\" )\n                 {\n-                    #$log->debug(\"MODIFIED $4\");\n-                    $head->{$4} = {\n-                        name => $4,\n-                        revision => $head->{$4}{revision} + 1,\n-                        filehash => $2,\n+                    #$log->debug(\"MODIFIED $name\");\n+                    $head->{$name} = {\n+                        name => $name,\n+                        revision => $head->{$name}{revision} + 1,\n+                        filehash => $hash,\n                         commithash => $commit->{hash},\n                         modified => $commit->{date},\n                         author => $commit->{author},\n                         mode => $git_perms,\n                     };\n-                    $self->insert_rev($4, $head->{$4}{revision}, $2, $commit->{hash}, $commit->{date}, $commit->{author}, $git_perms);\n+                    $self->insert_rev($name, $head->{$name}{revision}, $hash, $commit->{hash}, $commit->{date}, $commit->{author}, $git_perms);\n                 }\n-                elsif ( $3 eq \"A\" )\n+                elsif ( $change eq \"A\" )\n                 {\n-                    #$log->debug(\"ADDED    $4\");\n-                    $head->{$4} = {\n-                        name => $4,\n+                    #$log->debug(\"ADDED    $name\");\n+                    $head->{$name} = {\n+                        name => $name,\n                         revision => 1,\n-                        filehash => $2,\n+                        filehash => $hash,\n                         commithash => $commit->{hash},\n                         modified => $commit->{date},\n                         author => $commit->{author},\n                         mode => $git_perms,\n                     };\n-                    $self->insert_rev($4, $head->{$4}{revision}, $2, $commit->{hash}, $commit->{date}, $commit->{author}, $git_perms);\n+                    $self->insert_rev($name, $head->{$name}{revision}, $hash, $commit->{hash}, $commit->{date}, $commit->{author}, $git_perms);\n                 }\n                 else\n                 {\n-                    $log->warn(\"UNKNOWN FILE CHANGE mode=$1, hash=$2, change=$3, name=$4\");\n+                    $log->warn(\"UNKNOWN FILE CHANGE mode=$mode, hash=$hash, change=$change, name=$name\");\n                     die;\n                 }\n             }\n@@ -2412,10 +2417,12 @@ sub update\n             # this is used to detect files removed from the repo\n             my $seen_files = {};\n \n-            my $filepipe = open(FILELIST, '-|', 'git-ls-tree', '-r', $commit->{hash}) or die(\"Cannot call git-ls-tree : $!\");\n+            my $filepipe = open(FILELIST, '-|', 'git-ls-tree', '-z', '-r', $commit->{hash}) or die(\"Cannot call git-ls-tree : $!\");\n+\t    local $/ = \"\\0\";\n             while ( <FILELIST> )\n             {\n-                unless ( /^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\s+(.*)$/o )\n+\t\tchomp;\n+                unless ( /^(\\d+)\\s+(\\w+)\\s+([a-zA-Z0-9]+)\\t(.*)$/o )\n                 {\n                     die(\"Couldn't process git-ls-tree line : $_\");\n                 }\n"},{"id":"298412","messageId":"45587A09.3020605@b-i-t.de","threadId":"43064","inReplyTo":"7vvelnjd4p.fsf@assigned-by-dhcp.cox.net","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"sf","fromEmail":"sf@b-i-t.de","sentAt":"2006-11-13T13:58:33Z","receivedAt":"2006-11-13T13:58:33Z","isPatch":false,"sender":{"key":"sf@b-i-t.de","avatar":null},"body":"Junio C Hamano wrote:\n> sf <sf@b-i-t.de> writes:\n> \n>> I want to access a git repository via git-cvsserver. The problem is\n>> that the repository contains paths with umlauts. These paths come out\n>> quoted and escaped when checked out with cvs.\n> \n> I think this is because the cvsserver invokes diff-tree and\n> ls-tree without -z and the output from these command quote\n> non-ascii letters as unsafe.\n\nI knew I had seen that kind of quoting before but right then I thought \nit was related to Perl or SQLite.\n\n> Martin's sqlite may probably be needed as well, but regardless\n> of that something like this patch is needed -- otherwise what \n> populates sqlite database will be quoted to begin with so it\n> would not help much.\n\nMartin, are you sure your patch is needed? (see below)\n\n> I've tested with your reproduction recipe, but otherwise not\n> tested this patch.\n\nThanks, Junio. Paths with umlauts are returned correctly now both in \nUTF-8 and ISO-8859-1. I guess git-cvsserver is now as encoding agnostic \nas git core.\n\nRegards\n\n"},{"id":"298013","messageId":"ej9utk$44p$1@sea.gmane.org","threadId":"43064","inReplyTo":"45587A09.3020605@b-i-t.de","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-11-13T14:20:44Z","receivedAt":"2006-11-13T14:20:44Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"sf wrote:\n\n> Thanks, Junio. Paths with umlauts are returned correctly now both in \n> UTF-8 and ISO-8859-1. I guess git-cvsserver is now as encoding agnostic \n> as git core.\n\nBy the way, now that git has per user config file, ~/.gitconfig, perhaps\nit is time to add i18n.filesystemEncoding configuration variable, to\nautomatically convert between filesystem encoding (somthing you usually\ndon't have any control over) and UTF-8 encoding of paths in tree objects.\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n\n"},{"id":"298508","messageId":"46a038f90611131022l105b5df3ycdf7aa33016b336e@mail.gmail.com","threadId":"43064","inReplyTo":"45587A09.3020605@b-i-t.de","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2006-11-13T18:22:46Z","receivedAt":"2006-11-13T18:22:46Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"On 11/13/06, sf <sf@b-i-t.de> wrote:\n> Martin, are you sure your patch is needed? (see below)\n\nNot 100% sure. I was just making sure we crossed all the Ts and dotted\nthe Is. I gather you have tried my patch and it didn't make any\ndifference. What SQLite and Perl versions are you using?\n\ncheers,\n\n\n\n"},{"id":"297963","messageId":"200611131930.18300.robin.rosenberg.lists@dewire.com","threadId":"43064","inReplyTo":"ej9utk$44p$1@sea.gmane.org","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2006-11-13T18:30:18Z","receivedAt":"2006-11-13T18:30:18Z","isPatch":false,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"måndag 13 november 2006 15:20 skrev Jakub Narebski:\n> sf wrote:\n> > Thanks, Junio. Paths with umlauts are returned correctly now both in\n> > UTF-8 and ISO-8859-1. I guess git-cvsserver is now as encoding agnostic\n> > as git core.\n>\n> By the way, now that git has per user config file, ~/.gitconfig, perhaps\n> it is time to add i18n.filesystemEncoding configuration variable, to\n> automatically convert between filesystem encoding (somthing you usually\n> don't have any control over) and UTF-8 encoding of paths in tree objects.\n\nI'd prefer git to store filenames and comments in UTF-8 and convert on \ninput/output when and if it is necessary rather than forcing everybody to \ntake the hit. Most systems, but far from all, already use UTF-8 so it's a \nnoop for them. The only reason I want conversion is for the years to come \nwhere we still live in two worlds of non-utf-8 and utf-8 and then forget \nabout everything non-utf-8, rather than carry around the baggage forever.\n\n"},{"id":"298456","messageId":"200611131957.48801.jnareb@gmail.com","threadId":"43064","inReplyTo":"200611131930.18300.robin.rosenberg.lists@dewire.com","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-11-13T18:57:48Z","receivedAt":"2006-11-13T18:57:48Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Dnia poniedziałek 13. listopada 2006 19:30, Robin Rosenberg napisał:\n> måndag 13 november 2006 15:20 skrev Jakub Narebski:\n>> sf wrote:\n>>> Thanks, Junio. Paths with umlauts are returned correctly now both in\n>>> UTF-8 and ISO-8859-1. I guess git-cvsserver is now as encoding agnostic\n>>> as git core.\n>>\n>> By the way, now that git has per user config file, ~/.gitconfig, perhaps\n>> it is time to add i18n.filesystemEncoding configuration variable, to\n>> automatically convert between filesystem encoding (somthing you usually\n>> don't have any control over) and UTF-8 encoding of paths in tree objects.\n> \n> I'd prefer git to store filenames and comments in UTF-8 and convert on \n> input/output when and if it is necessary rather than forcing everybody to \n> take the hit. Most systems, but far from all, already use UTF-8 so it's a \n> noop for them. The only reason I want conversion is for the years to come \n> where we still live in two worlds of non-utf-8 and utf-8 and then forget \n> about everything non-utf-8, rather than carry around the baggage forever.\n\nThat was my idea, to have i18n.filesystemEncoding configuration variable\nto convert between filesystem encoding (which is usually something you don't\nhave control over, and which depends from place to place, but not from\nrepository to repository) and UTF-8 encoding git would store filenames.\n\n-- \nJakub Narebski\n"},{"id":"293801","messageId":"7vzmav6scl.fsf@assigned-by-dhcp.cox.net","threadId":"43064","inReplyTo":"200611131930.18300.robin.rosenberg.lists@dewire.com","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-11-13T19:48:10Z","receivedAt":"2006-11-13T19:48:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Robin Rosenberg <robin.rosenberg.lists@dewire.com> writes:\n\n> måndag 13 november 2006 15:20 skrev Jakub Narebski:\n>> sf wrote:\n>> > Thanks, Junio. Paths with umlauts are returned correctly now both in\n>> > UTF-8 and ISO-8859-1. I guess git-cvsserver is now as encoding agnostic\n>> > as git core.\n>>\n>> By the way, now that git has per user config file, ~/.gitconfig, perhaps\n>> it is time to add i18n.filesystemEncoding configuration variable, to\n>> automatically convert between filesystem encoding (somthing you usually\n>> don't have any control over) and UTF-8 encoding of paths in tree objects.\n>\n> I'd prefer git to store filenames and comments in UTF-8 and convert on \n> input/output when and if it is necessary rather than forcing everybody to \n> take the hit. Most systems, but far from all, already use UTF-8 so it's a \n> noop for them. The only reason I want conversion is for the years to come \n> where we still live in two worlds of non-utf-8 and utf-8 and then forget \n> about everything non-utf-8, rather than carry around the baggage forever.\n\nPathnames in git core are encoding agnostic just like UNIX\npathnames are.  As you say, if the project convention is UTF-8\nthen it would not make any difference either way, so the status\nquo is fine for people living in UTF-8 only world.\n\nTo people for whom it is inconvenient to work with UTF-8,\nincluding me, it is always wrong to record UTF-8 at the core\nlevel and try to autoconvert.  If (non-git) tools, libraries and\nlegacy-to-unicode roundtrip conversion were perfect, we would\nhave already converted and living in UTF-8 only world.  Projects\nthat choose to run with legacy pathname encoding should be\nallowed to do so without taking the roundtrip risk converting to\nand from UTF-8.\n\nInterestingly enough, Linus mentioned this once, a lot better\nthan myself would have, here:\n\nhttp://thread.gmane.org/gmane.comp.version-control.git/12240/focus=12279\n\nHaving said that, I am not opposed to have an option to make the\nexternal interface to do the pathname conversion.  If your\nproject chooses to use euc-jp for commit messages, your\nconfiguration variable i18n.commitencoding is set to euc-jp, and\nif gitweb always wants to do its thing in utf-8 (which is\nprobably a sensible thing to do), it would make a lot of sense\nto take the commit message and convert it from euc-jp to utf-8\nbefore rendering it in HTML.  Maybe i18n.pathnameencoding could\nbe used for similar purposes for external interfaces.\n\nBut the core will stay encoding agnostic; pathnames stored in\nthe index and tree are what you can feed stat() and open(), and\nwhat you read from readdir().  Maybe we could revisit this\ndecision in five years, but not now.\n\n"},{"id":"295868","messageId":"200611132241.49458.robin.rosenberg.lists@dewire.com","threadId":"43064","inReplyTo":"200611131957.48801.jnareb@gmail.com","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg.lists@dewire.com","sentAt":"2006-11-13T21:41:49Z","receivedAt":"2006-11-13T21:41:49Z","isPatch":false,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"måndag 13 november 2006 19:57 skrev Jakub Narebski:\n> That was my idea, to have i18n.filesystemEncoding configuration variable\n> to convert between filesystem encoding (which is usually something you\n> don't have control over, and which depends from place to place, but not\n> from repository to repository) and UTF-8 encoding git would store\n> filenames.\n\nYes, I know.\n\n"},{"id":"297372","messageId":"45599D32.10904@b-i-t.de","threadId":"43064","inReplyTo":"46a038f90611131022l105b5df3ycdf7aa33016b336e@mail.gmail.com","subject":"Re: Non-ASCII paths and git-cvsserver","fromName":"sf","fromEmail":"sf@b-i-t.de","sentAt":"2006-11-14T10:40:50Z","receivedAt":"2006-11-14T10:40:50Z","isPatch":false,"sender":{"key":"sf@b-i-t.de","avatar":null},"body":"Martin Langhoff wrote:\n> On 11/13/06, sf <sf@b-i-t.de> wrote:\n>> Martin, are you sure your patch is needed? (see below)\n> \n> Not 100% sure. I was just making sure we crossed all the Ts and dotted\n> the Is. I gather you have tried my patch and it didn't make any\n> difference. What SQLite and Perl versions are you using?\n\nYour patch did make a difference but the outcome is not good:\n\n+ WORK=/tmp/gittest\n+ FILE=$'\\303\\244'\n+ mkdir /tmp/gittest\n+ mkdir /tmp/gittest/git\n+ cd /tmp/gittest/git\n+ git init-db\ndefaulting to local storage area\n+ git repo-config gitcvs.enabled 1\n+ git repo-config gitcvs.logfile /tmp/gittest/git/.git/cvslog.txt\n+ touch $'\\303\\244'\n+ git add $'\\303\\244'\n+ git commit -a -mx\nCommitting initial tree 23d6145738bba135994775c19d6e8ae707d399ee\n+ cd /tmp/gittest\n+ CVS_SERVER=git-cvsserver\n+ export CVS_SERVER\n+ cvs -d :fork:/tmp/gittest/git/.git co master\ncvs checkout: Updating master\nU master/Ã¤\n+ ls master\nÃ¤  CVS\n\n\nThe pathname has been UTF-8 encoded _twice_!\n\nPerl's version is 5.8.8. How do I get the version of SQLite? Do you mean \nDBD-SQLite-1.11?\n\nRegards\n\nStephan\n"}]}