Rev 5398: (vila, jam) Get PQM running correctly again (bug #626667), in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Vincent Ladeuil v.ladeuil+lp at free.fr
Tue Aug 31 08:21:52 BST 2010


>>>>> John Arbash Meinel <john at arbash-meinel.com> writes:

    > On 8/30/2010 9:49 PM, Matthew D. Fuller wrote:
    >>> --- a/Makefile	2010-04-06 06:59:03 +0000
    >>> +++ b/Makefile	2010-08-30 21:23:49 +0000
    >>> @@ -39,8 +39,14 @@
    >>> check: docs check-nodocs
    >>> 
    >>> check-nodocs: extensions
    >>> +	set -e
    >> 
    >> What's the point of this?  Every line of a target executes in a
    >> different shell anyway, so this shouldn't have any effect on anything
    >> anyway (since the shell you just `set -e` in exits at the end of the
    >> line).
    >> 
    >> 

Exactly my thought, each line in the action is executed in a newly
spawned shell...

So I digged the history a bit and obviously it had an effect for
John... could that be that the option is somehow exported ??? Weird.

The only occurrence of 'set -e' in make info files is:

     %.d: %.c
             @set -e; rm -f $@; \
              $(CC) -M $(CPPFLAGS) $< > $@.$$$$; \
              sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
              rm -f $@.$$$$

But in this case, it's really a single line, so single shell
invocation... no mention of special casing for 'set -e'.

    > It had an effect when testing it both here and on pqm. *why* I'm not
    > really sure. But without it the line passes, as with it, it fails and
    > gives a traceback.

It's really suprising that it works, since, as Robert mentioned on IRC,
we really 'set -o pipefail'.

Anyway, locally, with or without this line, the result is the same:
   if [ ! -s selftest.log ] ; then exit 1 ; fi
 is the line that caught the failure.

  Vincent



More information about the bazaar mailing list