Today, the ReactOS Source Code has been migrated from a central
Subversion instance to a decentralized Git repository. Together with
that, ReactOS joins the list of projects using the popular GitHub
service for developing software:
https://github.com/reactos/reactos
We expect that this move greatly improves the way we collaborate on
ReactOS development and reduces the barriers for newcomers. Just fork
our repository on GitHub, commit your changes and send us a Pull Request!
Migrating a source code history of more than 20 years that had seen
multiple version control systems was not a straightforward task.
Deciding on a decentralized version control system has not been either.
First discussions already started back in 2009, when neither Git nor
Mercurial were able to fully convert a large SVN repository like ours
and Git’s Windows support was still neglected. Things improved massively
over the years, with GitHub and Git for Windows emerging as reliable
tools for software development. But the ReactOS Project still took
advantage of some Subversion features, so only a smooth migration using
a two-way SVN-Git mirror was attempted in 2016. This failed miserably,
however important lessons were learned for a future complete migration
to Git. The tipping point was reached in early 2017 when a majority of
ReactOS developers spoke out in favor of moving to Git. Finally, the
ReactOS Hackfest in August offered a forum to try out things and discuss
every little detail of the planned migration. And this is what got us
here today!
The development documentation is still in the process of being rewritten
to account for the Git migration. You may currently find outdated
information here and there. However, most of that is on the Wiki, so you
are more than welcome to help us!
The SVN Repository has been turned read-only and will be kept online for
a while at the last revision r76032. Our Git mirror now mirrors the
GitHub repository. If you have already been using our old Git mirror,
please note that you have to do a fresh clone of our new repository
(from either GitHub or the mirror) as the old and new ones are incompatible.
JIRA continues to be used for bug tracking, BuildBot for continuous
integration, and FishEye as a code browser.
I would like to thank all the people who have helped with this
migration, be it on IRC, the mailing lists or at the Hackfest! Special
thanks also go to the KDE Project for their excellent
svn-all-fast-export tool that was used for the conversion. If you are
ever in a similar situation, have a look at my conversion scripts as
well as the Git helpers for our infrastructure.
Colin Finck