[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Extra blank line when using command line editor for commit message

From: Ryan Schmidt <subversion-2014_at_ryandesign.com>
Date: Tue, 22 Apr 2014 17:40:36 -0500

On Apr 22, 2014, at 12:52, Justin Mrkva wrote:

> On Apr 21, 2014, at 6:19 PM, Ryan Schmidt wrote:
>
>> Yes: install the log-police.py hook script in your repository.
>>
>> http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/log-police.py
>
> That looks good at first, but this excerpt from the Subversion book explains why that’s a bad idea:
>
> While hook scripts can do almost anything, there is one dimension in which hook script authors should show restraint: do not modify a commit transaction using hook scripts. While it might be tempting to use hook scripts to automatically correct errors, shortcomings, or policy violations present in the files being committed, doing so can cause problems. Subversion keeps client-side caches of certain bits of repository data, and if you change a commit transaction in this way, those caches become indetectably stale. This inconsistency can lead to surprising and unexpected behavior. Instead of modifying the transaction, you should simply validate the transaction in the pre-commit hook and reject the commit if it does not meet the desired requirements.
>
> I could of course just reject the commit if it has whitespace, but then that means that any commit using the command line editor would be rejected, because svn always adds the whitespace.

That passage of the book is referring to the content of the revision — the diff of the files you committed; indeed you should not modify that in a hook script, and I don’t know of any way, using the Subversion provided tools, to do so. It does not refer to metadata of the revision — revision properties — which are what this hook script modifies and which are safe to modify.

You’ll notice that this hook script is provided in Subversion’s own repository. The developers of Subversion would not publish a script that damages repositories.

The MacPorts project has been using this hook script for six years in their repository. It works fine. I recommend you use it.

https://trac.macports.org/ticket/15069
Received on 2014-04-23 00:41:29 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.