Since there are no strict rules about redo behaviour, here are some remarks about goredo's one: * "all" target is default * stdout is always captured, but no target is created if it was empty * non-existent targets are considered always out of date * .do's $3 is relative path to the file in target directory * .do search goes up to / by default, but can be limited with either $REDO_TOP_DIR environment variable, or by having .redo/top file in it * target's completion messages are written after they finish * executable .do is run as is, non-executable is run with: /bin/sh -e * tracing (-x) can be obviously done only for non-executable .do * Parallelizable build is done only during redo-ifchange for human convenience: you can globally enable $REDO_JOBS, but still do for example: redo htmls infos index upload