On Thu, Feb 25, 2016 at 1:41 AM, Colin Finck <colin(a)reactos.org> wrote:
Hi Mike,
So I was about to finish my ongoing server work in the next few days and
then push for a move to Git on the mailing lists. Thanks for spoiling
those plans! :)
I totally agree with all your raised points. I'm using Git every day at
work now, so do several of our developers. For some of us, ReactOS
remains the only project still using SVN.
While Git's usability under Windows has long been a problem (check
ros-dev from April 2009), TortoiseGit and GitHub have greatly simplified
things here.
The poor usability of Git on non-*nix platforms is one of the reasons
why I'm still a huge fan of Mercurial. Also, the SVN-like CLI workflow
means that's it's less disruptive than moving to Git. There's also a
fantastic guide on how to get started with Mercurial[0].
That being said, Mercurial and Git can interoperate with each other
fairly well. If you choose to have a Git server, then Mercurial can
talk to it through hg-git[1]. If you choose to have a Mercurial
server, then Git can talk to it through git-remote-hg[2].
However, Mercurial has better support for natively working in Windows,
and tends to handle the differences of platforms a whole lot better
than Git does. My experience with importing and contributing to SVN
based projects tends to be better with Mercurial than Git, simply
because the SVN data maps better in Mercurial.
I also got introduced into Git submodules recently.
They're perfectly
suited for a large project like ReactOS that should be split up into
multiple smaller subprojects. Having several easily hackable
subprojects, and then having them on GitHub, gives us way more exposure
and probably more contributors.
Mercurial supports subrepositories[3], which is a more advanced form
of Git's submodules. Mercurial's subrepositories do not have to be
Mercurial repositories, either. They can be SVN, Git, or any other
supportable source of repository information.
I'll admit to having some bias here against GitHub. I don't like it
very much, as I don't even find it very intuitive. There are a lot of
annoying shortcomings when it comes to how things are tracked and
recorded which annoy me. Between GitHub and BitBucket, I very much
prefer BitBucket. But generally speaking, I'm not much of a fan of
using proprietary software for software development. If we could avoid
it, that would be nice.
There are very nice FOSS tools out there for providing an excellent
development experience, such as Phabricator[4] and GitLab[5] for
self-hosted environments. If you really want to move to a Git based
hosted platform,
GitLab.com offers free hosting[6], and there's also
BitBucket[7] for either Mercurial or Git.
[0]:
http://hginit.com/
[1]:
http://hg-git.github.io/
[2]:
https://github.com/felipec/git-remote-hg
[3]:
https://www.mercurial-scm.org/wiki/Subrepository
[4]:
http://phabricator.org/
[5]:
https://about.gitlab.com/features/
[6]:
https://about.gitlab.com/gitlab-com/
[7]:
https://bitbucket.org/
--
真実はいつも一つ!/ Always, there's only one truth!