subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ryan Schmidt <subversion-20...@ryandesign.com>
Subject Re: Copying hooks automatically upon repository creation
Date Mon, 04 Oct 2010 18:42:34 GMT

On Oct 4, 2010, at 12:51, Tech Geek wrote:

> We use one repository per project. All repository lives in /var/lib/svn/.
>  
> Also we use the hooks post-commit and pre-commit for every repository. Right now we have
to manually copy these two hooks whenever a new repository is created.
> For example:
> cd /var/lib/svn/
> cp /path-to-my-hooks/* projectA/hooks
> cp /path-to-my-hooks/* projectB/hooks
> cp /path-to-my-hooks/* projectC/hooks
>  
> Is there any way to automate this process?

As Andy said, you can write a script that creates the repository and then copies the scripts,
then make sure you call that script instead of calling "svnadmin create" directly whenever
you want a new repo. My version of this script creates the repository as the Apache user and
symlinks in my common hooks and conf directories. I symlink instead of copying because I want
all my repositories to always have the same hooks and conf files, and I want changes I make
in them to be reflected in existing repositories. Here's my script:


#!/bin/bash

REPO="/path/to/subversion/repositories/$1"
USER="www"

if [ -e "$REPO" ]; then
	echo "Repository \"$1\" already exists." 1>&2
	exit 1
fi

sudo -u "$USER" svnadmin create "$REPO" || exit $?
sudo -u "$USER" rm -rf "$REPO"/{conf,hooks} || exit $?
sudo -u "$USER" ln -s ../../conf "$REPO" || exit $?
sudo -u "$USER" ln -s ../../hooks "$REPO" || exit $?




Mime
View raw message