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

Re: post-commit question/issue

From: david x callaway <dxc_at_pobox.com>
Date: 2007-05-02 00:35:44 CEST

why not set up the env python needs before calling it rather than
messing with the python scripts? I don't know python, but in ruby you
might want to do
     export RUBYLIB=/home/you/ruby/lib
or similar, to pick up your local libs. for python itself you can either do
     export PATH=/usr/bin
or
     PYTHON=/usr/bin/python
...
     $PYTHON /path/to/script.py
... etc

since the hook is called with an empty env it is up to you to set
anything that isn't compiled in or found without the env, for example
ruby will pick up the system libs but not your local ones.

dxc

Jeff Lanzarotta wrote:
> Not quite sure how to do that since it is a python script, but I will
> take a look at it...
>
> --- Matt Sickler <crazyfordynamite@gmail.com> wrote:
>
>> Make sure that mailer.py also has absolute paths in it - it inherits
>> the
>> empty environment from the hook too.
>>
>> On 5/1/07, Jeff Lanzarotta <delux256-subversion@yahoo.com> wrote:
>>> I went ahead and added the absolute paths, but unfortunately that
>> did
>>> not work... Is there a log somewhere where I can tell what is going
>> on?
>>> --- Jeff Lanzarotta <delux256-subversion@yahoo.com> wrote:
>>>
>>>> I am starting to agree with you. As Andrew R Feller, stated also
>>>> about
>>>> the security reasons Subversion uses an empty environment...
>>>>
>>>> I will give that a try... Thanks...
>>>>
>>>> --- David Ferguson <ferguson.david@gmail.com> wrote:
>>>>
>>>>> Try using absolute paths to mailer.py and mailer.conf. I don't
>>>> think
>>>>> you
>>>>> can be guaranteed in which path Subversion will execute your
>>>>> post-commit
>>>>> script. So if you put mailer.py and mailer.conf in your
>>>> repository's
>>>>> hooks
>>>>> directory, the following should work:
>>>>>
>>>>> $REPOS/hooks/mailer.py commit "$REPOS" "$REV"
>>>>> $REPOS/hooks/mailer.conf
>>>>>
>>>>> On 5/1/07, Jeff Lanzarotta <delux256-subversion@yahoo.com>
>> wrote:
>>>>>> Here is is...
>>>>>>
>>>>>> ----------8<----------
>>>>>>
>>>>>> #!/bin/sh
>>>>>> # POST-COMMIT HOOK
>>>>>> #
>>>>>> # The post-commit hook is invoked after a commit.
>> Subversion
>>>>> runs
>>>>>> # this hook by invoking a program (script, executable,
>> binary,
>>>>> etc.)
>>>>>> # named 'post-commit' (for which this file is a template)
>> with
>>>>> the
>>>>>> # following ordered arguments:
>>>>>> #
>>>>>> # [1] REPOS-PATH (the path to this repository)
>>>>>> # [2] REV (the number of the revision just
>>>> committed)
>>>>>> #
>>>>>> # The default working directory for the invocation is
>>>> undefined,
>>>>> so
>>>>>> # the program should set one explicitly if it cares.
>>>>>> #
>>>>>> # Because the commit has already completed and cannot be
>>>> undone,
>>>>>> # the exit code of the hook program is ignored. The hook
>>>> program
>>>>>> # can use the 'svnlook' utility to help it examine the
>>>>>> # newly-committed tree.
>>>>>> #
>>>>>> # On a Unix system, the normal procedure is to have
>>>> 'post-commit'
>>>>>> # invoke other programs to do the real work, though it may
>> do
>>>> the
>>>>>> # work itself too.
>>>>>> #
>>>>>> # Note that 'post-commit' must be executable by the user(s)
>> who
>>>>> will
>>>>>> # invoke it (typically the user httpd runs as), and that
>> user
>>>>> must
>>>>>> # have filesystem-level permission to access the
>> repository.
>>>>>> #
>>>>>> # On a Windows system, you should name the hook program
>>>>>> # 'post-commit.bat' or 'post-commit.exe',
>>>>>> # but the basic idea is the same.
>>>>>> #
>>>>>> # The hook program typically does not inherit the
>> environment
>>>> of
>>>>>> # its parent process. For example, a common problem is for
>> the
>>>>>> # PATH environment variable to not be set to its usual
>> value,
>>>> so
>>>>>> # that subprograms fail to launch unless invoked via
>> absolute
>>>>> path.
>>>>>> # If you're having unexpected problems with a hook program,
>> the
>>>>>> # culprit may be unusual (or missing) environment
>> variables.
>>>>>> #
>>>>>> # Here is an example hook script, for a Unix /bin/sh
>>>> interpreter.
>>>>>> # For more examples and pre-written hooks, see those in
>>>>>> # the Subversion repository at
>>>>>> # http://svn.collab.net/repos/svn/trunk/tools/hook-scripts/
>> and
>>>>>> #
>> http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/
>>>>>> REPOS="$1"
>>>>>> REV="$2"
>>>>>>
>>>>>> ./mailer.py commit "$REPOS" "$REV" mailer.conf
>>>>>>
>>>>>> ----------8<----------
>>>>>>
>>>>>> I am running Subversion 1.4.3 under openSUSE 10.1
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --- Andrew R Feller <afelle1@lsu.edu> wrote:
>>>>>>
>>>>>>> Hello Jeff,
>>>>>>>
>>>>>>> Could you post your post-commit script please? Also,
>> please
>>>> note
>>>>> the
>>>>>>> following from the Subversion book:
>>>>>>>
>>>>>>>
> ========================================================================
>>>>>>> ====
>>>>>>> For security reasons, the Subversion repository executes
>> hook
>>>>>>> programs
>>>>>>> with an empty environment-that is, no environment variables
>> are
>>>>> set
>>>>>>> at
>>>>>>> all, not even $PATH (or %PATH%, under Windows). Because of
>>>> this,
>>>>> many
>>>>>>> administrators are baffled when their hook program runs
>> fine by
>>>>> hand,
>>>>>>> but doesn't work when run by Subversion. Be sure to
>> explicitly
>>>>> set
>>>>>>> any
>>>>>>> necessary environment variables in your hook program and/or
>> use
>>>>>>> absolute
>>>>>>> paths to programs.
>>>>>>>
> ========================================================================
>>>>>>> ====
>>>>>>>
>>>>>>> Trust me; this gets a lot of us! (v_v;)
>>>>>>>
>>>>>>> Thanks,
>>>>>>> A-
>>>>>>>
>>>>>>> Andrew R Feller, Analyst
>>>>>>> University Information Systems
>>>>>>> Louisiana State University
>>>>>>> afelle1@lsu.edu
>>>>>>> (office) 225.578.3737
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: Jeff Lanzarotta
>> [mailto:delux256-subversion@yahoo.com]
>>>>>>> Sent: Tuesday, May 01, 2007 12:53 PM
>>>>>>> To: Subversion Mailing List
>>>>>>> Subject: post-commit question/issue
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I am trying to get the post-commit hook to email a list of
>>>>> developers
>>>>>>> when it is fired. I believe I have everything setup
>> correctly,
>>>>>>> because
>>>>>>> I can type the following in on the command line when I am
>> in
>>
> === message truncated ===
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed May 2 00:36:04 2007

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.