In r1416637, svnlook proplist --verbose output changed from propname : propval format, to an indented output:
Properties on ... propname1 propval1 propval2 This change makes check-mime-type aware of both the pre 1.7.8 and 1.7.8+ formats. Signed-off-by: Brett Randall <javabr...@gmail.com> --- contrib/hook-scripts/check-mime-type.pl | 35 +++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/contrib/hook-scripts/check-mime-type.pl b/contrib/hook-scripts/check-mime-type.pl index 9ac7e8d..8789aaa 100755 --- a/contrib/hook-scripts/check-mime-type.pl +++ b/contrib/hook-scripts/check-mime-type.pl @@ -119,17 +119,40 @@ foreach my $path ( @files_added ) # Parse the complete list of property values of the file $path to extract # the mime-type and eol-style - foreach my $prop (&read_from_process($svnlook, 'proplist', $repos, '-t', - $txn, '--verbose', '--', $path)) + + my @output = &read_from_process($svnlook, 'proplist', $repos, '-t', + $txn, '--verbose', '--', $path); + my $output_line = 0; + + foreach my $prop (@output) { - if ($prop =~ /^\s*svn:mime-type : (\S+)/) + if ($prop =~ /^\s*svn:mime-type( : (\S+))?/) { - $mime_type = $1; + $mime_type = $2; + # 1.7.8 (r1416637) onwards changed the format of svnloop proplist --verbose + # from propname : propvalue format, to values in an indent list on following lines + if (not $mime_type) + { + my $next_line_pval_indented = $output[$output_line + 1]; + if ($next_line_pval_indented =~ /^\s{4}(.*)/) + { + $mime_type = $1; + } + } } - elsif ($prop =~ /^\s*svn:eol-style : (\S+)/) + elsif ($prop =~ /^\s*svn:eol-style( : (\S+))?/) { - $eol_style = $1; + $eol_style = $2; + if (not $eol_style) + { + my $next_line_pval_indented = $output[$output_line + 1]; + if ($next_line_pval_indented =~ /^\s{4}(.*)/) + { + $eol_style = $1; + } + } } + $output_line++; } # Detect error conditions and add them to @errors -- 2.5.0