tech-repository archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Core statement on version control systems



First of all, I'd like to thank everyone doing the hard work on
cleaning up the repo and setting up and fixing all of these
conversions; which have been taking place for well over a decade now!
Heisenbugs and all!

Not to derail the progress with the existing plans, but I don't
understand why is it Mercurial, and not Git or at least the
BSD-licensed Fossil-SCM, that is being set up for the the task of
being the next keeper of the golden copy of NetBSD.

Bitbucket was started in 2008 offering Mercurial-only hosting; in 2011
they added support for Git; but then in 2020, they abruptly removed
Mercurial support on a very short notice, citing a StackOverflow
survey of Mercurial usage of "about 3%" compared to "almost 90%" for
Git.

As of January 2025, Mercurial lists 3 anchor users of Mercurial over
at https://www.mercurial-scm.org/who -- https://archive.is/IeKA9 --
Facebook, Mozilla and Nginx.

1. Facebook.  It appears that since the shutdown of Mercurial support
by Bitbucket, there may no longer be any public repositories of any
source code by Facebook or Meta in Mercurial, with all of their public
OSS now being hosted in Git over at GitHub.

   Evidently, even `hgwatchman` that was contributed to Mercurial by
Facebook, now returns a 404 from Bitbucket from FB's 2014 post linked
from Mercurial's "who" page, with the current links for the related
(sub)project going to GitHub today over from
https://wiki.mercurial-scm.org/FsMonitorExtension, no less.

   Existence of https://github.com/facebook/sapling -- via
https://glandium.org/blog/?p=4346 -- indicates that Meta may not be
using Mercurial for their private monorepo anymore, either.

2. Mozilla.  I was trying to find a confirmation that they're actually
still using Mercurial to this day, but their 2025 website only has a
"Careers" and "Products" Download sections; I double-checked I was on
the dot-org version of their website, and not the dot-com, but, alas,
there's no links to the code, Mercurial or not...  Oh, well.

   It appears that Mozilla has already announced in Nov 2023 of
definitive plans to move Firefox Desktop from Mercurial to GitHub, and
eventually shut down their self-hosted Mercurial usage for good, but
as of Jan 2025, the migration doesn't appears to have started just
yet.

   Note that many other Mozilla projects are already on GitHub, and
given https://glandium.org/blog/?p=4346 ("How I (kind of) killed
Mercurial at Mozilla") from the author of git-cinnabar, it's not
particularly clear if git-cinnabar would even continue to be
maintained once Mozilla sunsets Mercurial for good.

3. Nginx.  Currently, the English front page of www.nginx.org has 5
links from the keyword "Code", all to GitHub, for the main project and
the 4 sub projects.  The download page --
http://nginx.org/en/download.html -- lists GitHub as primary and
self-hosted hg as the mirror.

   The move from Mercurial to GitHub appears to be a recent event from
September 2024 by F5 as per
https://blog.nginx.org/blog/nginx-open-source-moves-to-github , where
they do credit Mercurial history and promise to keep the mirror for
the foreseeable future.

   That's the F5 "NGINX Open Source", what about the forks?  It
appears that both Angie and FreeNginx forks still do use both
Mercurial and Git/GitHub.
https://en.angie.software/angie/docs/development/
http://freenginx.org/en/download.html

But, overall, that's not looking particularly promising for Mercurial.

As for our conversion, I think the last time major announcements on
tech-repository@ were made, the export conversion was still going
through Fossil-SCM, yet now src.Fossil.NetBSD.org no longer works
(returns 502 Bad Gateway or a variation, and has an expired cert,
too), and suddenly it's Hg that's set to hold the next golden copy?

* http://mail-index.netbsd.org/tech-repository/2017/06/10/msg000637.html
* http://mail-index.netbsd.org/tech-repository/2017/09/01/msg000647.html

What exactly has changed, and why Mercurial is even being considered
for the position at all, when even the dual-stack anchor users are
abandoning Mercurial and moving to Git?

Best regards,
Constantine.


On Sat, 4 Jan 2025 at 08:53, Taylor R Campbell <riastradh%netbsd.org@localhost> wrote:
>
> > Date: Sun, 4 Jan 2015 16:31:10 +0200
> > From: Alan Barrett <apb%netbsd.org@localhost>
> >
> > The NetBSD core group has been asked to make a statement on version
> > control systems.
> >
> > There is a strong case for switching from CVS to a modern
> > distributed version control system (DVCS). However, the proponents
> > of particular DVCS systems have not presented a coherent plan that
> > can be used to implement a transition from the current system to a
> > new system.
>
> Here is a plan to transition NetBSD from CVS to a hybrid of Mercurial
> and Git, based on the current CVS -> Mercurial conversion process we
> have ongoing.
>
> Summary:
>
> - Developers can pull _and push_ via either hg or git at their choice.
>
> - Primary repository is hg.
>
> - Git mirror via git-cinnabar -- pushes to git are relayed
>   synchronously to hg.
>
>   => Developers using git need not install or configure any special
>      software like git-cinnabar; it will act just like a regular git
>      remote.
>   => No more forced updates -- that was an artefact of the ongoing
>      conversion from CVS.
>   => Read-only github mirror will remain.
>
> - For now, linear-history workflow with rebase, just like CVS.
>
>   => We may transition in the future to merge-based workflow
>      integrated with releng automatic testbed, but not today.
>
>
> Details below.  Not everything in this draft plan is finished, but the
> parts marked XXX are largely minor.  Parts of this are to be
> integrated with other existing notes scattered around the wiki in a
[…]


Home | Main Index | Thread Index | Old Index