On a mission to make collaborative coding better
Our goal is to give developers the very best tools to work together on code. And have fun doing it!
The idea to Divversion was born on a cold rainy Sunday afternoon in September 2021. Frustrated by many failed attempts to merge a Hydra of conflicting Git branches in a project we were working on, we decided to develop the next generation of version control.
So, what’s wrong with the industry-standard solution for version control, Git? Git is a great piece of software (thanks, Linus!), but has some quirks and limitations, particularly when many developers are trying to edit the same code at the same time. Merge conflicts still instil fear into the heart of even the most hardcore devs…
So, we started thinking and little by little the basic idea of Divversion emerged: To store different views, one per developer, in for a given feature branch. It turns out that this makes it much easier to (automatically) reason about merge conflicts! We combined this with an improved merging algorithm to tie the loose strands together to get a best-possible “consensus” view, and out comes the basic concept of Divversion.
These promising ideas, however, turned out to be a challenge to implement. Just like for humans, merging many branches into one and resolving the resulting merge conflicts as much as possible, is also a tough nut to crack for machines! But we persisted. Now, after over two years of development and many wrong turns and diversions (pun intended!), we are incredibly excited to say that the result is finally ready for prime time!
Happy coding,

PS: Head over to the Docs if you are interested in more details on how Divversion works.