/usr/share/perl5/SVN/Hooks/AllowLogChange.pm is in libsvn-hooks-perl 1.27-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | package SVN::Hooks::AllowLogChange;
{
$SVN::Hooks::AllowLogChange::VERSION = '1.27';
}
# ABSTRACT: Allow changes in revision log messages.
use strict;
use warnings;
use Carp;
use Data::Util qw(:check);
use SVN::Hooks;
use Exporter qw/import/;
my $HOOK = 'ALLOW_LOG_CHANGE';
our @EXPORT = ($HOOK);
my @Valid_Users;
sub ALLOW_LOG_CHANGE {
my @args = @_;
foreach my $who (@args) {
if (is_string($who) || is_rx($who)) {
push @Valid_Users, $who;
} else {
croak "$HOOK: invalid argument '$who'\n";
}
}
PRE_REVPROP_CHANGE(\&pre_revprop_change);
return 1;
}
sub pre_revprop_change {
my ($svnlook, $rev, $author, $propname, $action) = @_;
$propname eq 'svn:log'
or croak "$HOOK: the revision property $propname cannot be changed.\n";
$action eq 'M'
or croak "$HOOK: a revision log can only be modified, not added or deleted.\n";
# If no users are specified, anyone can do it.
return unless @Valid_Users;
for my $user (@Valid_Users) {
return if is_string($user) && $author eq $user || $author =~ $user;
}
croak "$HOOK: you are not allowed to change a revision log.\n";
}
1; # End of SVN::Hooks::AllowLogChange
__END__
=pod
=encoding UTF-8
=head1 NAME
SVN::Hooks::AllowLogChange - Allow changes in revision log messages.
=head1 VERSION
version 1.27
=head1 SYNOPSIS
This SVN::Hooks plugin is used to allow revision log changes by some
users.
It's deprecated. You should use SVN::Hooks::AllowPropChange instead.
It's active in the C<pre-revprop-change> hook.
It's configured by the following directive.
=head2 ALLOW_LOG_CHANGE(WHO, ...)
This directive enables the change of revision log messages, which are
mantained in the C<svn:log> revision property.
The optional WHO argument specifies the users that are allowed to make
those changes. If absent, any user can change a log
message. Otherwise, it specifies the allowed users depending on its
type.
=over
=item STRING
Specify a single user by name.
=item REGEXP
Specify the class of users whose names are matched by the
Regexp.
=back
ALLOW_LOG_CHANGE();
ALLOW_LOG_CHANGE('jsilva');
ALLOW_LOG_CHANGE(qr/silva$/);
=for Pod::Coverage pre_revprop_change
=head1 AUTHOR
Gustavo L. de M. Chaves <gnustavo@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by CPqD.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|