Code

cvsserver: Fix handling of diappeared files on update
authorFrank Lichtenheld <frank@lichtenheld.de>
Wed, 11 Apr 2007 20:38:19 +0000 (22:38 +0200)
committerJunio C Hamano <junkio@cox.net>
Wed, 11 Apr 2007 23:55:33 +0000 (16:55 -0700)
Only send a modified response if the client sent a
"Modified" entry. This fixes the case where the
file was locally deleted on the client without
being removed from CVS. In this case the client
will only have sent the Entry for the file but nothing
else.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Acked-by: Martin Langhoff <martin@catalyst.net.nz>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-cvsserver.perl

index 68aa75255e21ff8231fe2f54e5772f8cbb026fce..25816c5a21285cae1d8e42f46f26126a03c6631f 100755 (executable)
@@ -843,6 +843,7 @@ sub req_update
         if ( defined ( $wrev )
              and defined($meta->{revision})
              and $wrev == $meta->{revision}
+             and defined($state->{entries}{$filename}{modified_hash})
              and not exists ( $state->{opt}{C} ) )
         {
             $log->info("Tell the client the file is modified");