SVN::H...pChange(3pm)

πŸ“¦
version 1.36 Β· 3 versions
, in ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

SVN::Hooks::AllowPropChange β€” bestie, this is the plugin that lets your people change revision properties. That's it, that's the job. πŸ‘‘


✨ VERSION ✨

version 1.36 β€” we're on 1.36, no cap. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

okay so this whole page lives in the SVN::Hooks family β€” it's the User Contributed Perl Documentation corner of the world, section 3pm, and the module it's about is literally called SVN::Hooks::AllowPropChange (the man header shortens it to SVN::H...pChange(3pm) because apparently even manpages have a character limit, smh πŸ’€).

So what does this plugin do? It lets revision (or non-versioned) properties β€” you know the big three: svn:author, svn:date, and svn:log β€” be changed by a group of users. Group chat permissions, basically, but for your repo. 🫢

It's active in the pre-revprop-change hook. That's its whole moment.

And it gets configured by the following directive, which we're about to get into. πŸ‘‡

🌸 ALLOW_PROP_CHANGE(PROP => WHO, ...) 🌸

This directive is the one that actually enables the change of revision properties. Slay.

By default any change is denied unless you explicitly allow it with this directive. (Yes, it's giving strict-parent energy. That's on purpose. πŸ”’) You can use the directive more than once β€” stack it, layer it, go off. ✨

The PROP argument specifies the propertie(s) that are to be configured, and what it means depends on its type. And if no argument is given, then no user can change any property. None. Zero. Nobody. πŸ’€

  • STRING β€” Specify a single property by name (author, date, or log).
  • REGEXP β€” Specify all properties that match the Regexp. Matching era. 🌈

The optional WHO arguments specify the users that are allowed to make those changes. If absent, no user can change a log message. Otherwise, it specifies the allowed users, and again it depends on its type:

  • STRING β€” Specify a single user by name. Just the one. πŸ’…
  • REGEXP β€” Specify the class of users whose names are matched by the Regexp. Whole squad, one regex.

Like, for real, look at these:

ALLOW_PROP_CHANGE('svn:log' => 'jsilva'); # jsilva can change svn:log
ALLOW_PROP_CHANGE(qr/./ => qr/silva$/); # any *silva can change any property

First one: jsilva and only jsilva gets the svn:log keys. Second one: qr/./ matches any property and qr/silva$/ matches any user ending in silva, so any *silva can change any property. The surname-based access control is genuinely iconic ngl. πŸ‘‘


πŸ’œ AUTHOR πŸ’œ

Gustavo L. de M. Chaves <gnustavo@cpan.org> β€” the actual legend behind this. 🫢


This software is copyright (c) 2022 by CPqD <www.cpqd.com.br>. 🏒

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. So like, go forth, remix, redistribute β€” just keep it on the same terms, bestie. πŸ’–


🧚 okay that's the whole page!! no skipped options, no skipped anything, we ate and left no crumbs.

sign-off time: this whole thing was rendered with perl v5.36.0 and dated 2022-09-11, and the man page title it lives under is SVN::H...pChange(3pm). mwah. πŸ’…βœ¨πŸŒΈ

πŸ“¦ where this page comes from