cvsserver: fix checkouts with -d <somedir>
authorMartin Langhoff <martin@catalyst.net.nz>
Fri, 3 Mar 2006 03:57:03 +0000 (16:57 +1300)
committerJunio C Hamano <junkio@cox.net>
Fri, 3 Mar 2006 06:56:28 +0000 (22:56 -0800)
A recent Eclipse compat fix broke checkouts with -d. Fix it so that the server
sends the correct module name instead of the destination directory name.

git-cvsserver.perl

index 40b9c2a..6f10d4c 100755 (executable)
@@ -576,9 +576,9 @@ sub req_co
     # Eclipse seems to need the Clear-sticky command
     # to prepare the 'Entries' file for the new directory.
     print "Clear-sticky $checkout_path/\n";
-    print $state->{CVSROOT} . "/$checkout_path/\n";
+    print $state->{CVSROOT} . "/$module/\n";
     print "Clear-static-directory $checkout_path/\n";
-    print $state->{CVSROOT} . "/$checkout_path/\n";
+    print $state->{CVSROOT} . "/$module/\n";
 
     # instruct the client that we're checking out to $checkout_path
     print "E cvs checkout: Updating $checkout_path\n";
@@ -609,11 +609,11 @@ sub req_co
 
            # Eclipse seems to need the Clear-sticky command
            # to prepare the 'Entries' file for the new directory.
-           print "Clear-sticky $module/$git->{dir}\n";
+           print "Clear-sticky $checkout_path/$git->{dir}\n";
            print $state->{CVSROOT} . "/$module/$git->{dir}\n";
-           print "Clear-static-directory $module/$git->{dir}\n";
+           print "Clear-static-directory $checkout_path/$git->{dir}\n";
            print $state->{CVSROOT} . "/$module/$git->{dir}\n";
-           print "E cvs checkout: Updating /$module/$git->{dir}\n";
+           print "E cvs checkout: Updating /$checkout_path/$git->{dir}\n";
            $lastdir = $git->{dir};
            $seendirs{$git->{dir}} = 1;
        }