The <repeat> task repeats a block of tasks either while
a specified condition holds true, or until a specified
condition becomes true.
It provides a generic way of looping where the
<foreach> task is inapplicable; more importantly, it loops
on a condition rather than a collection, thus allowing for
Finally, since <repeat> is a self-contained task, it side-
steps the re-entrancy problems of the <call> task.
Specifically, one or more <repeat> loops can now be
defined within a single target, rather than requiring a
separate target for the body of each loop, with looping
variables initialised outwith the target containing the