Closed Bug 632418 Opened 13 years ago Closed 13 years ago

don't ignore hg exit statuses

Categories

(Release Engineering :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 631542

People

(Reporter: dustin, Unassigned)

Details

from bug 632385:

 argv: ['sh', '-c', u'if [ -d mozilla-central ]; then hg -R mozilla-central pull ;hg -R mozilla-central up -C ;else hg clone http://hg.mozilla.org/mozilla-central mozilla-central ; fi && hg -R mozilla-central update -C -r default']
 ...
abort: repository default not found!
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
program finished with exit code 0

Two things to note here.  First the shell script ignores the exit status from |hg -R mozilla-central pull|, since it joins that command to the next with '&&'.  Generally in this sort of situation I try to space things out and use '|| exit 1' after each command:

sh -c '
if [ -d mozilla-central ]; then
  hg -R mozilla-central pull || exit 1;
  hg -R mozilla-central up -C || exit 1;
else
  hg clone http://hg.mozilla.org/mozilla-central mozilla-central || exit 1;
fi;
hg -R mozilla-central update -C -r default || exit 1'

The second thing to note is that hg's exit status isn't that reliable anyway.  Running |hg -R mozilla-central pull| by hand in \build results in the same

abort: repository default not found!

as buildbot saw, but a subsequent |echo $?| shows 0, indicating success.  I'm not sure what can be done about this.  There's a similar problem we've seen with older versions of MSys Git where GIT.CMD failed to propagate exit statuses - maybe the same thing is happening here?
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → DUPLICATE
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.