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> --- git-cvsserver.perl | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-)
Show changes to git-cvsserver.perl +6 −3
diff --git a/git-cvsserver.perl b/git-cvsserver.perl index b2837ad..1b70cd9 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -549,12 +549,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
-- 1.4.2.rc2.g96f2-dirty