Conflicts in vovbuild

During the building of a flow, it is possible to generate conflicting flow fragments.

Type Cause Handling
Output conflicts A J or an O statement generate an output dependency for a file that is already the output of another job. Output conflicts arising from running vovbuild are resolved with "force," that is, in case of output conflict, build rules that are processed later override the preceding rules.

To aid the debugging of flows, the old job remains in the trace, with its status set to SLEEPING and with an explanation of what happened. You can access to this explanation by visiting the sleeping job and by asking "why is it sleeping?"

Input conflicts The flow declares as input a file that is not VALID. Input conflicts during flow builds are not really conflicts and are always ignored.
Cycle conflicts A declaration that causes a cycle in the dependency graph Cycle conflicts are always fatal errors that force vovbuild to abort.