Pete Freitag Pete Freitag

Using Subversion Hooks to send out build emails

Updated: May 27, 2020
coldfusionjavamiscbooks

The subversion version control system has a wonderfully handy feature called hooks. Hooks are essentially scripts that are triggered by a version control event (such as a commits, or revision property changes).

Subversion Hooks are located in your repository directory (so if you have multiple repositories you have to setup hooks for each one) in a directory called hooks, perhaps something like this: /home/svn/projectName/hooks. There are template files (.tmpl) in the directory for each event (these files are just examples). The events are:

  • start-commit - run before commit transaction begins, can be used to do special permission checking
  • pre-commit - run at the end of the transaction, but before commit. Often used to validate things such as a non zero length log message.
  • post-commit - runs after the transaction has been committed. Can be used for sending emails, or backing up repository.
  • pre-revprop-change - runs before a revision property change. Can be used to check permissions.
  • post-revprop-change - runs after a revision property change. Can be used to email or backup these changes.

In your hooks directory you will find a .tmpl file with each of the event names, if you want to enable one of the hooks, copy the template file (without the .tmpl extension) and make it executable.

Note: On windows you need to rename the .tmpl file with an extension that is executable by windows such as an exe or bat file.

If you want to send out a build email on post-commit copy the post-commit.tmpl file to post-commit and make it executable. Edit the file, and add your email addresses.

Subversion comes with a few other pre-built hook scripts, there is a hot-backup.py script that can be used to make hot backups of your repository after commits.

You can find more info about this in the Version control with Subversion book which can also be found here

As with any server, you should also make sure your subversion server is patched for security vulnerabilities. A good way to keep updated on subversion vulnerabilities is with stack.watch. It will help you by sending you an email when new vulnerabilities are published.


Like this? Follow me ↯

Using Subversion Hooks to send out build emails was first published on February 23, 2005.

If you like reading about subversion, version control, or hooks then you might also like:

FuseGuard Web App Firewall for ColdFusion

The FuseGuard Web Application Firewall for ColdFusion & CFML is a high performance, customizable engine that blocks various attacks against your ColdFusion applications.

Comments

You are describing how to send out emails containing the results of a svn commit, not a *build* of the code in the repository.

But your blog title mentions "build emails". How can you use svn hooks to email results of a build?

Did I miss something?
by Aslak Hellesoy on 02/24/2005 at 1:58:17 AM UTC
Hi Aslak,

We actually use subversion hooks to do just that, we send the results of the ant build script and also the svn commit. Basically what you need to do is write the results of your build to a file, and include the contents of the file in the email
by Pete Freitag on 02/24/2005 at 8:35:30 AM UTC
Fred, thanks for your reply. Got it.

AFAIK, the various hook scripts execute in a synchronous fashion, keeping the svn client blocked until everything is complete.

In other words, I'm assuming your svn client is blocked until your build is complete (correct me if I'm wrong).

Since commit transactions now become potentially very long (a build of a project typically takes from 10 secs to 30 minutes) - how does this impact your work?

Does svn allow concurrent commits? (I.e. can Sue commit while Fred's commit is in process?) If concurrent commits are not possible, wouldn't your setup potentially cause developers to have to queue up in order to commit their changes?
by Aslak Hellesoy on 02/24/2005 at 9:54:52 AM UTC
If you run with a post-commit hook, your svn client returns, and the build goes on in the background, and emails you when its done.
by Pete Freitag on 02/24/2005 at 10:25:18 AM UTC
Aslak, The client does not hang, so subversion must fork a new process or thread to handle the post-commit operations.
by Pete Freitag on 05/09/2005 at 12:19:16 PM UTC
I copied the post-commit template and chmod +x to make it an executable. I also added my email to the post-commit file. I've tried commiting a changed file in the svn repository, but I still don't receive an email about the change.
by Jennifer on 10/25/2005 at 5:02:56 PM UTC
Hello,
Can any one point me to what is needed to enable the revprop change hook when running the SVN server on Windows?
by Mark Andrews on 02/23/2006 at 6:06:09 AM UTC
i followed all the steps and the subversion did send a mail when i commit a change, but i found that the from segment of the mail had been changed to something else.How can i change it back to the original one?
by xutm on 10/19/2006 at 12:18:09 AM UTC
For windows users, I've created an application that can handle pre-commit and post-commit Subversion hooks. The pre-commit hooks allow you to control what goes into your repository as well as validate commit messages. The post-commit sends out nicely formatted e-mails. This is a SourceForge.net project but is summarized on my site: http://mckechney.com/SubversionNotifyForWindows
by mmckechney on 12/19/2007 at 8:25:15 PM UTC
I'm a new member and so I thought to post some Host gator Coupon for a start.

Hostgator Coupon 20% OFF : GREEN
Hostgator Coupon 20% OFF (October): SPOOKY
Hostgator coupon - "HGC25 - $9.94 discount
Hostgator coupon - "jury" - $9.94 discount
Hostgator coupon - "iceishot" - $9.94 discount
Hostgator coupon - "Hostcritique" - $9.94 discount

HostGator Valentine's Day Coupon
Coupon code - "Heart" - It saves you 20% on your order!

First Month 1 Cent Coupons ($9.94 Off) <img>http://www.bloggingtipsonline.com/terminal/img/1660/z08q1005awez/confused.gif</img>
1. "iceishot" - $9.94 OFF 2. "jury" - $9.94 OFF 3. "webhostingunleashed" - $9.94 OFF

To save upto $ 9.94 on Hostgator Shared Hosting, enter any of the below mentioned:

Hostgator Coupon Code : WEBHOSTING
Hostgator Coupon Code : TURKEY
Hostgator Coupon Code : FINDMYHOST
Hostgator Coupon Code : TOPHOST
Hostgator Coupon Code : HGC25
Hostgator Coupon Code : 404PAGE
Hostgator Coupon Code : HOSTGATOR
Hostgator Coupon Code : WORDPRESS
Hostgator Coupon Code : ICEISHOT

Hostgator Resellers Coupon Code : CO_NR

This hostgator coupon will give you following discount:

* Hostgator Hatchling 1 year: $6.95 x 12 x 20% Off = $16.68 Discount!
* Hostgator Hatchling 2 year: $5.95 x 24 x 20% Off = $28.56 Discount!
* Hostgator Hatchling 3 year: $4.95 x 36 x 20% Off = $35.64 Discount!
* Hostgator Baby 2 year: $8.95 x 24 x 20% Off = $42.96 Discount!
* Hostgator Baby 3 year: $7.95 x 36 x 20% Off = $57.24 Discount!
* Hostgator Swamp 2 year: $13.95 x 24 x 20% Off = $66.96 Discount!
* Hostgator Swamp 3 year: $12.95 x 36 x 20% Off = $93.24 Discount!

Enjoy!!

<img>http://bloggingtipsonline.com/terminal/img/1660/z08q1005awez/confused.gif</img>
by Ordemnero on 12/28/2008 at 4:58:01 PM UTC
The response to national disaster is noble but it's a damn shame that so many citizens take advantage of the sad situations.

I mean everytime there is an earthquake, a flood, an oil spill - there's always a group of heartless people who rip off tax payers.

This is in response to reading that 4 of Oprah Winfreys "angels" got busted ripping off the system. Shame on them!
http://www.cbsnews.com/blogs/2009/08/19/crimesider/entry5251471.shtml
by Opettytot on 03/01/2010 at 10:19:30 PM UTC
how to check svn
by gopal on 08/10/2010 at 2:29:10 AM UTC
how to edit mail in post-commit file.
by deepti on 03/03/2011 at 1:45:41 AM UTC
hello there tommy i dont normaly give it out but i think this is there link
and some info , there very helpfull ,just say micky heemson recommened you
by michaelheemson on 06/15/2012 at 11:38:32 AM UTC