In the Apache environment, some communities may decide to permit (or encourage) revolutions as ways of reconciling differences, particularly code changes which have been blocked on a particular branch by a veto. Originally described by James Duncan Davison in his 'Rules for Revolutionaries,' the concept has been adopted, formally or informally, by at least one Apache project. Essentially, a revolution occurs when a group of committers decides to fork the current main branch in order to work on problematic code or concepts. This permits them to pursue it without disturbing the evolutionary work on the main branch. A revolutionary branch may eventually be merged back into the main branch, die out, split completely and become a new main branch, or may absorb the current main branch into itself (essentially no different than the first option). See the ' Rules for Revolutionaries' and compare evolution.