We quite often discussed about the management of our source codes in the last years. For a long time, we used Subversion (SVN) to manage our source code. It worked quite well but there were some disadvantages in comparison with other version control systems like the popular GIT. One drawback is for example that we can not commit some changes if there is no connection to our server. For that reason, we wanted to migrate to GIT for quite a long time. Smaller or new internal projects like for example the code changes for our websites were not a big problem to migrate. However the grown structures of DMXControl 3 were difficult. In the ten years of development there were many changes in the structure of the DMXControl 3 project. Some things were moved to sub projects and other things were reorganized (as usual in grown structures). Therefore an easy migration could not be done.
Fortunately, other web projects had grown structures too. A prominent example is the KDE project (known from the Linux area) with their code repositories. To face those problems, they have written their own GIT migration tool, which can handle such grown code structures (you can find the tool here: https://github.com/svn-all-fast-export/svn2git). On that basis, we started at the DevCon last year to define a set of rules for our roundabout 7000! commits in the DMXControl 3 SVN repository to move them to multiple GIT repositories on our GIT server. After many tests and fine tuning of the rules, we dare to do the migration yesterday. All went well, so all of our actively developed projects now benefit from the source code management of GIT. In the next days there are only a few things left to do (for example check, if our build system is now configured correctly).