From: Le Date: Mon, 22 Dec 2008 20:33:45 GMT Subject: Bugs in sub argsfromdir of git-cvsserver Message-ID: <494FF9A9.9060706@distributel.ca> Hi, all, I found a bug in git-cvsserver. sub argsfromdir { if ( scalar(@{$state->{args}}) == 1 ) { my $arg = $state->{args}[0]; #$arg .= $state->{prependdir} if ( defined ( $state->{prependdir} ) ); $arg = $state->{prependdir} . $arg if ( defined ( $state->{prependdir} ) ); $log->info("Only one arg specified, checking for directory expansion on '$arg'"); ... } ... } It makes not sense of the above remarked out code. But when I use the code followed remarked out, I have problem to use cvs diff or cvs log in a sub directory of the root (may other commands as well). Eg.: I have a project called test1 and in test1 there is a test2 subdirectory and a file test2/test3.txt. I have no problem to cvs diff and cvs log in test1 directory. But if I enter test1/test2 to check these commands then they are not working. I tried to fixed the problem to remarked out the code: #$filename = filecleanup($filename); in req_log and req_diff, then both cvs diff and cvs log work. In sub filecleanup { ... $filename = $state->{prependdir} . $filename; return $filename; } inserts $state->{prependdir} into the $filename. But I don't know if what I did brings incompatibilities. Can anybody check this issue? Thanks! Le Wen