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

Re: Commit Hooks Asynchronous?

From: Trent Nelson <trent_at_snakebite.org>
Date: Fri, 3 Feb 2012 18:10:44 -0500

On Fri, Feb 03, 2012 at 02:42:49PM -0800, Cory Finger wrote:
> Hello, I was just curious. I am developing a script that involves both
> a pre-commit hook and a post commit hook.
>
> The post-commit hook opens a file, reads a file, and saves a file. I
> was wondering, do I need to set up a lock-file system to ensure that 2
> people committing at the same time will not cause a problem in the
> file writing process? Or do the commit hooks run asynchronously?

    Assuming you're writing to the same file name during each hook
    invocation, yes, you'll definitely need to introduce locking.

    Alternatively, you could write to a revision-specific file during
    post-commit, then have a little daemon that writes to the intended
    file sequentially, as files become available.

    If the time it takes you to process a commit is proportional to the
    size of a commit, your post-commit hooks will finish out of order.

    For example:
        Post commit for rev 6 (30MB delta) is running.
        Post commit for rev 7 (1 prop change) starts, finishes.
        Post commit for rev 6 finishes a minute later.

    Unless post-commit r7 logic depends on r6, I'd highly recommend
    the daemon approach over locking.

        Trent.
Received on 2012-02-04 00:11:19 CET

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