For a long time Firefox Desktop development has supported both Mercurial and Git users. This dual SCM requirement places a significant burden on teams which are already stretched thin in parts. We have made the decision to move Firefox development to Git.
We will continue to use Bugzilla, moz-phab, Phabricator, and Lando
Although we'll be hosting the repository on GitHub, our contribution workflow will remain unchanged and we will not be accepting Pull Requests at this time
We're still working through the planning stages, but we're expecting at least six months before the migration begins
No. The primary source control is on Mercurial, with a Git interface. But since all patches must go through moz-phab (Phabricator) anyway the Git interface is basically read-only – you can use it to pull the code and you can use Git locally for your development, but you can't use Git to push back into the main repo.
Now the reference repository will switch from their own Mercurial infrastructure to a Github (Git) repository, but the flow will remain the same (Phabricator rather than GitHub pull requests). Nothing will change for devs who were using Git. Devs who were using Mercurial will have to switch to Git.
That's basically what the GitHub repo will be, a mirror from which people can download the latest code. Mozilla dev flow does not use GitHub infrastructure and they don't plan to.
I love forgejo for Homelabbing purposes but Mozilla Foundation has the infrastructure to deploy something like GitLab, which has a much larger feature set compared to forgejo with more targeted toward the development work on large projects. But, Mozilla said the development flow would remain mostly the same as it is now, so most of the features in GitLab, Forgejo, or GitHub will remain unused.
I think the trouble is when users start committing to git, they can't really be mirrors because each one needs to combine the inputs from both. A mirror would be just a copy of one to the other, this is a constant merging exercise which requires significantly more effort.
Some amusing context (as a big Mercurial fan, myself):
According to the 2022 Stack Overflow Developer Survey, Mercurial is the 4th most popular response, beaten only by Git, Subversion, and "I don't use version control".
Git was roughly 94x as popular as Mercurial.
"I don't use version control." was a bit more than 4x as popular as Mercurial.
Unreal engine basically requires it for decent version control iirc. i had a nightmare trying to get git to work on my university project a few years back
Nothing in tech stands still. If you want a glimpse of a possible alternative future check out Pijul. And I don't know an example off-hand but the idea of doing version control on ASTs of program code rather than flat text is an interesting concept that hasn't taken off yet.
There are very good reasons why Git prevailed. The previous generation of SCMs were terrible. Most of the ones that came around the same time as Git (distributed SCMs) got lots of things wrong. Git is complex but it's flexible, it doesn't try to force any particular way of doing things on you, which means you can make it work with any flow you can think of.
Just find yourself an antiquated Microsoft aligned company and maybe you'll get to taste the bitter fruit that is TFVC. I use it daily and it's.. Different.