Code

git-cvsserver: support multiline commit messages
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Wed, 26 Jul 2006 19:59:08 +0000 (21:59 +0200)
committerJunio C Hamano <junkio@cox.net>
Wed, 26 Jul 2006 20:03:01 +0000 (13:03 -0700)
Earlier, cvsserver barfed when you tried to check in files with a
multiline commit message.

That is what Argumentx is for... Argument: lines can be followed by
several Argumentx: lines, which means they should be appended.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-cvsserver.perl

index 0bbd871c14f1efb25b35c8f0842f9957c079f930..5b73837bb1e1f0b29ec089942a6a785fc38f1cbc 100755 (executable)
@@ -547,12 +547,15 @@ sub req_Argument
 {
     my ( $cmd, $data ) = @_;
 
-    # TODO :  Not quite sure how Argument and Argumentx differ, but I assume
-    # it's for multi-line arguments ... somehow ...
+    # Argumentx means: append to last Argument (with a newline in front)
 
     $log->debug("$cmd : $data");
 
-    push @{$state->{arguments}}, $data;
+    if ( $cmd eq 'Argumentx') {
+        ${$state->{arguments}}[$#{$state->{arguments}}] .= "\n" . $data;
+    } else {
+        push @{$state->{arguments}}, $data;
+    }
 }
 
 # expand-modules \n