added contains_repeated_chars into pre-commit
This commit is contained in:
parent
ef83a9b1f3
commit
f62d9e9d8a
@ -138,6 +138,32 @@ sub is_project_commitable
|
|||||||
return (((scalar(@row) > 0 && $row[0] eq 'Y')? 1: 0), undef);
|
return (((scalar(@row) > 0 && $row[0] eq 'Y')? 1: 0), undef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub contains_repeated_chars
|
||||||
|
{
|
||||||
|
my ($str, $limit) = @_;
|
||||||
|
|
||||||
|
my $len = length($str);
|
||||||
|
my $lc = '';
|
||||||
|
my $count = 1;
|
||||||
|
|
||||||
|
for (my $i = 0; $i < $len; $i++)
|
||||||
|
{
|
||||||
|
my $c = substr($str, $i, 1);
|
||||||
|
if ($lc eq $c)
|
||||||
|
{
|
||||||
|
$count++;
|
||||||
|
if ($count > $limit) { return 1; }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$count = 1;
|
||||||
|
$lc = $c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
sub check_commit_message
|
sub check_commit_message
|
||||||
{
|
{
|
||||||
my ($minlen) = @_;
|
my ($minlen) = @_;
|
||||||
@ -167,6 +193,14 @@ sub check_commit_message
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $log = $txn->prop ('svn:log');
|
my $log = $txn->prop ('svn:log');
|
||||||
|
# TODO: block a certain message patterns. create a configuration item
|
||||||
|
# for this
|
||||||
|
#if ($log =~ /[[:punct:]]{5,}/ || contains_repeated_chars($log, 4))
|
||||||
|
#{
|
||||||
|
# print (STDERR "Commit message rejected\n");
|
||||||
|
# return 0;
|
||||||
|
#}
|
||||||
|
|
||||||
$log =~ s/\s{2,}/ /g;
|
$log =~ s/\s{2,}/ /g;
|
||||||
$log =~ s/([[:punct:]]{1,2}\s+){3,}/ /g;
|
$log =~ s/([[:punct:]]{1,2}\s+){3,}/ /g;
|
||||||
$log =~ s/[[:punct:]]{3,}/ /g;
|
$log =~ s/[[:punct:]]{3,}/ /g;
|
||||||
|
Loading…
Reference in New Issue
Block a user