Bugs in sub argsfromdir of git-cvsserver

2 messages, 1 author, 2016-06-15 · open the first message on its own page

Bugs in sub argsfromdir of git-cvsserver

From: Le <hidden>
Date: 2016-06-15 22:45:49

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

Re: Bugs in sub argsfromdir of git-cvsserver

From: Le <hidden>
Date: 2016-06-15 22:45:49

Le wrote:
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
-- 
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
It seems that req_up and req_status need to be changed as well. I am not 
which subs need to be changed.

Le Wen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help