Codeville is a distributed Version Control System. It began with a novel idea for a merge algorithm, and has grown from there. It is designed to be easy to use, and scale from small personal projects, to very large distributed ones. If you'd like to know why there's need for new merge algorithms, consider what the lead monotone developer had to say: http://article.gmane.org/gmane.comp.version-control.monotone.devel/3264 Codeville works by creating an identifier for each change that is done, and remembering the list of all changes which have been applied to each file, and the last change which modified each line in each file. When there's a conflict, it checks to see if one of the two sides has already been applied to the other one, and if so, makes the other side win automatically. When there's a non automatically mergeable version conflict, Codeville behaves in almost exactly the same way as CVS.