You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Matthew Pounsett <ma...@conundrum.com> on 2012/07/09 20:43:40 UTC
Difficulty with post-commit emails
Apologies if this is handled on the list recently, but I haven't had any luck googling an answer.. don't see anything in the manual either.
Although I've done lots of upgrades, it's been a while since I installed a new subversion server completely from scratch, so I'm just now running into the fact that commit-email.py has been deprecated. commit-email.rb has no useful documentation .. not even a basic usage summary.. so I'm trying to get mailer.py working. I've run into an error I can't explain though, and I'm hoping someone has a pointer for me.
This is using subversion 1.7.5 and the mailer.py and python bindings that come with it, both installed out of ports on a FreeBSD box.
My mailer.conf file is present in the same directory as mailer.py, and is pretty much the default with the addition of a catch-all group at the end of the file:
> diff mailer.conf.example mailer.conf
24c24
< #smtp_hostname = localhost
---
> smtp_hostname = localhost
361a362,365
> [catchall]
> for_repos = /var/svn/repos/(?P<repo>[^/]*)
> to_addr = commit-%(repo)@conundrum.com
> from_addr = svnadmin@conundrum.com
I'm working with a test repository:
> ls /var/svn/repos/svn-test/
README.txt conf dav db format hooks locks
Subversion is running as an Apache module, so I'm expecting mailer to be run by the www user. I get the following error:
> sudo -u www ./mailer.py commit svn-test 10
Traceback (most recent call last):
File "./mailer.py", line 1435, in <module>
sys.argv[3:3+expected_args])
File "/usr/local/lib/python2.7/site-packages/svn/core.py", line 307, in run_app
return func(application_pool, *args, **kw)
File "./mailer.py", line 100, in main
repos = Repository(repos_dir, revision, pool)
File "./mailer.py", line 1116, in __init__
self.repos_ptr = svn.repos.open(repos_dir, pool)
File "/usr/local/lib/python2.7/site-packages/libsvn/repos.py", line 212, in svn_repos_open
return _repos.svn_repos_open(*args)
svn.core.SubversionException: 2 - Can't open file 'svn-test/format': No such file or directory
The file svn-test/format is clearly present. This isn't just environment.. I get the same error passed back when mailer.py is run by a post-commit script. Is there something else here I'm missing?
Re: Difficulty with post-commit emails
Posted by Matthew Pounsett <ma...@conundrum.com>.
On 2012/07/09, at 16:03, Daniel Shahaf wrote:
> Please confirm that $PWD was '/var/svn/repos' when you ran this command.
I did eventually figure this out yesterday. Thanks for the response though!
I was passing the name of the repository, rather than the path to the repository. I guess I assumed mailer would work it out somehow from the path in for_repos, which seems sortof silly now that I look back at it. :)
Re: Difficulty with post-commit emails
Posted by Daniel Shahaf <d....@daniel.shahaf.name>.
Matthew Pounsett wrote on Mon, Jul 09, 2012 at 14:43:40 -0400:
>
> Apologies if this is handled on the list recently, but I haven't had any luck googling an answer.. don't see anything in the manual either.
>
> Although I've done lots of upgrades, it's been a while since I installed a new subversion server completely from scratch, so I'm just now running into the fact that commit-email.py has been deprecated. commit-email.rb has no useful documentation .. not even a basic usage summary.. so I'm trying to get mailer.py working. I've run into an error I can't explain though, and I'm hoping someone has a pointer for me.
>
> This is using subversion 1.7.5 and the mailer.py and python bindings that come with it, both installed out of ports on a FreeBSD box.
>
> My mailer.conf file is present in the same directory as mailer.py, and is pretty much the default with the addition of a catch-all group at the end of the file:
>
> > diff mailer.conf.example mailer.conf
> 24c24
> < #smtp_hostname = localhost
> ---
> > smtp_hostname = localhost
> 361a362,365
> > [catchall]
> > for_repos = /var/svn/repos/(?P<repo>[^/]*)
> > to_addr = commit-%(repo)@conundrum.com
> > from_addr = svnadmin@conundrum.com
>
> I'm working with a test repository:
> > ls /var/svn/repos/svn-test/
> README.txt conf dav db format hooks locks
>
> Subversion is running as an Apache module, so I'm expecting mailer to be run by the www user. I get the following error:
> > sudo -u www ./mailer.py commit svn-test 10
Please confirm that $PWD was '/var/svn/repos' when you ran this command.
> Traceback (most recent call last):
> File "./mailer.py", line 1435, in <module>
> sys.argv[3:3+expected_args])
> File "/usr/local/lib/python2.7/site-packages/svn/core.py", line 307, in run_app
> return func(application_pool, *args, **kw)
> File "./mailer.py", line 100, in main
> repos = Repository(repos_dir, revision, pool)
> File "./mailer.py", line 1116, in __init__
> self.repos_ptr = svn.repos.open(repos_dir, pool)
> File "/usr/local/lib/python2.7/site-packages/libsvn/repos.py", line 212, in svn_repos_open
> return _repos.svn_repos_open(*args)
> svn.core.SubversionException: 2 - Can't open file 'svn-test/format': No such file or directory
>
>
> The file svn-test/format is clearly present. This isn't just environment.. I get the same error passed back when mailer.py is run by a post-commit script. Is there something else here I'm missing?
>
>
It seems you pass a wrong value for the "path to repository" parameter.