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

Re: Hooks behaviour with svnsync

From: David Weintraub <qazwart_at_gmail.com>
Date: Tue, 1 Sep 2009 14:56:52 -0400

You also need a *pre*-commit or a *start*-commit hook that rejects any
commits that are not done by the svnsync user on your mirror repository. The
post-commit hook goes on the main repository to execute svnsync after each
commit. (This is, in theory, optional. You could have a crontab run svnsync
from another system entirely.)

Basically, on the mirror site:

   - A "start-commit" hook that prevents anyone except the svnsync user from
   making commits.
   - A "pre-revprop-change" hook that prevents anyone except the svnsync
   user from making changes in the revision properties.

And on your main repository (optional):

   - A "post-commit" hook that runs svnsync to syncronize the last commit to
   the mirror.

On Tue, Sep 1, 2009 at 12:55 PM, Radomir Zoltowski <
radomir.zoltowski_at_s3group.com> wrote:

> Hi all,
>
> I am having a little problem to make svnsync work through post-commit +
> pre-revprop-change pair. My setup is logically identical to this one:
> http://blogs.open.collab.net/svn/2007/08/mirroring-repos.html
>
> However, if I perform a commit as a user other than 'svnsync', the
> post-commit works to the point that is executes pre-revprop-change on
> the mirror. Then the pre-revprop-change on mirror fails as it sees $USER
> as my username instead of 'svnsync'. It fails with:
>
> Warning: post-commit hook failed (exit code 1) with output:
> svnsync: Revprop change blocked by pre-revprop-change hook (exit code 1)
> with output:
> Only the svnsync user may change revision properties as this is a
> read-only, mirror repository.
>
> AFAIK, pre-revprop-change should restart on the mirror as 'svnsync',
> with clean env, because I literally tell it to do so in post-commit on
> master:
>
> SYNCUSER="svnsync"
> URL_TO_MIRROR_REPO="svn+ssh://svn.****/svnroot/****"
> SVNSYNC="****/bin/svnsync"
>
> $SVNSYNC synchronize --source-username $SYNCUSER --sync-username
> $SYNCUSER $URL_TO_MIRROR_REPO &
>
> Any ideas, why my local $USER propagates as far as to pre-revprop-change
> hook (or exactly $3 variable) on mirror? Initialisation in the hook is
> standard: USER="$3". Interestingly, both 'svnserve -t' processes on
> master and mirror are correctly owned by 'svnsync'.
>
> Ah, my Subversion is 1.6.4.
>
> Regards,
> Radomir Zoltowski
>
> The information contained in this e-mail and in any attachments is
> confidential and is designated solely for the attention of the intended
> recipient(s). If you are not an intended recipient, you must not use,
> disclose, copy, distribute or retain this e-mail or any part thereof. If you
> have received this e-mail in error, please notify the sender by return
> e-mail and delete all copies of this e-mail from your computer system(s).
> Please direct any additional queries to: communications_at_s3group.com.
> Thank You.
> Silicon and Software Systems Limited. Registered in Ireland no. 378073.
> Registered Office: South County Business Park, Leopardstown, Dublin 18
>
> ------------------------------------------------------
>
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2389808
>
> To unsubscribe from this discussion, e-mail: [
> users-unsubscribe_at_subversion.tigris.org].
>

-- 
David Weintraub
qazwart_at_gmail.com
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2389883
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2009-09-01 20:57:50 CEST

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