For the same reason , the version history of a distributed revision control system generally have the structure of a directed acyclic graph , in which there is a vertex for each revision and an edge connecting pairs of revisions that was directly derived from each other . These are not trees in general due to merges .