git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] cvsserver: Add support for packed refs

From
Lars Noschinski <lars@public.noschinski.de>
Date
Jul 17, 2008, 12:40 UTC
Message-ID
<20080717124034.GA10589@lars.home.noschinski.de>
In-Reply-To
<alpine.LSU.1.00.0807171346560.3486@wbgn129.biozentrum.uni-wuerzburg.de>
Hello!
* Johannes Schindelin <Johannes.Schindelin@gmx.de> [08-07-17 14:31]:
Show 40 quoted lines
>On Thu, 17 Jul 2008, Lars Noschinski wrote:
>
>> req_update still parses /refs/heads manually. Replace this by
>> a call to show-ref.
>> 
>> Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
>> ---
>>  git-cvsserver.perl |   25 +++++++++----------------
>>  1 files changed, 9 insertions(+), 16 deletions(-)
>> 
>> diff --git a/git-cvsserver.perl b/git-cvsserver.perl
>> index b00d1c2..0e4f5f9 100755
>> --- a/git-cvsserver.perl
>> +++ b/git-cvsserver.perl
>> @@ -947,24 +947,17 @@ sub req_update
>>      # projects (heads in this case) to checkout.
>>      #
>>      if ($state->{module} eq '') {
>> -	my $heads_dir = $state->{CVSROOT} . '/refs/heads';
>> -	if (!opendir HEADS, $heads_dir) {
>> -	    print "E [server aborted]: Failed to open directory, "
>> -	      . "$heads_dir: $!\nerror\n";
>> -	    return 0;
>> -	}
>> -        print "E cvs update: Updating .\n";
>> -	while (my $head = readdir(HEADS)) {
>> -	    if (-f $state->{CVSROOT} . '/refs/heads/' . $head) {
>> -	        print "E cvs update: New directory `$head'\n";
>> -	    }
>> -	}
>> -	closedir HEADS;
>> -	print "ok\n";
>> -	return 1;
>> +        my $showref = `git show-ref --heads`;
>> +        for my $line (split '\n', $showref) {
>> +            if ( $line =~ m% refs/heads/(.*)$% ) {
>> +                print "M $1\t$1\n";
>
>In the removed part, I see that this changes behaviour from "E cvs update: 
>..." to "M ...".

Good catch, this part is indeed somewhat busted. The tested clients did not care, but this should be changed nevertheless to be the same as the old behaviour.

Show 5 quoted lines
>I do not know the CVS protocol well enough to know if that is still 
>correct.
>
>BTW from the removed part, it seems that the indentation was done with 
>tabs formerly, and with spaces now; please use tabs instead.

Actually, the old indetation was wrong. The biggest part of the file (and the surrounding code) is indented by spaces.

Previous: Johannes SchindelinNext: Johannes Schindelin
Message 9 of 11 in “Some cvs related fixes and enhancements”
  1. Lars NoschinskiJul 17, 2008
  2. Testsuite: Unset CVS_SERVERLars Noschinski, Jul 17, 2008
  3. cvsserver: Add support for packed refsLars Noschinski, Jul 17, 2008
  4. cvsserver: Add testsuite for packed refsLars Noschinski, Jul 17, 2008
  5. cvsserver: Add cvs co -c supportLars Noschinski, Jul 17, 2008
  6. testsuite for cvs co -cLars Noschinski, Jul 17, 2008
  7. Johannes SchindelinJul 17, 2008
  8. Johannes SchindelinJul 17, 2008
  9. Lars NoschinskiJul 17, 2008
  10. Johannes SchindelinJul 17, 2008
  11. Jeff KingJul 17, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.