New candidate JEP: 357: Migrate from Mercurial to Git
Joe Darcy
joe.darcy at oracle.com
Tue Jul 23 20:50:47 UTC 2019
Catching up on email...
On 7/16/2019 3:22 AM, Emmanuel Bourg wrote:
> Le 16/07/2019 à 11:49, Mario Torre a écrit :
>
>> and from what I see tooling support and size
>> of the download are the two only reason to use git
> One obvious benefit that is worth mentioning in the JEP I think is that
> Git is significantly more popular than Mercurial, and using what becomes
> a standard tool lowers the barrier of entry for new contributors. A mere
> read-only Git mirror doesn't help unifying the community around a common
> set of tools and workflows.
From one set of data points, the 2015 and 2018 stackoverflow surveys
about version control, a table showing the reported usage of git,
Mercurial, and no version control (other options omitted):
2015
2018
git
69.3%
87.2%
Mercurial
7.9%
3.6%
no version control
9.3%
4.8%
Good to see fewer respondents not using version control in 2018 compared
to 2015, but in both cases not using version control was more common
than using Mercurial. Between 2015 and 2018 all of Mercurial,
Subversion, and Team Foundation saw lower usage in this survey in
contrast with Git's gains. (The 2019 survey does not cover version
control systems.)
As time goes on, I don't think it is advantageous for OpenJDK to be one
of the diminishing number of open source projects using Mercurial.
Within the last few years, another long-time Mercurial-using project,
Python, moved from Mercurial to git
(https://www.python.org/dev/peps/pep-0512/).
There are many aspects of working on OpenJDK that are challenging or
different compared to most other projects (strict code review, long
lifetime of the sources, etc.) and using what is becoming more and more
a niche tool for foundational infrastructure becomes less compelling
unless it offers fundamental architectural advantages. However, there
isn't that kind of distinction between Mercurial and Git in Mercurial's
favor. There are technical differences between Git and Mercurial of
course, as discussed elsewhere on this thread, but none of the magnitude
of, for example, centralized vs distributed SCM. The existence of
converters between Git and Mercurial demonstrates a kind of rough
equivalence, even with significant differences in encoding size, etc.
While I myself have worked on OpenJDK for my years, I would understand
if someone coming to the project new would find its choice of Mercurial
unfamiliar and off-putting. I don't think use of Mercurial should be an
intrinsic or distinguishing part of OpenJDK development, as opposed to,
say, code review practices.
A goal of the Skara tooling is to allow existing JDK development
practices to continue while also offering a more contemporary
alternative. The Skara tooling is now used to develop the Skara code
itself on github, https://github.com/openjdk/skara/. A developer can
view the text of a proposed change in either github/gitlab or a webrev
and also follow the review discussion on github/gitlab or on a mailing
list. One particular example, a github PR (pull request)
https://github.com/openjdk/skara/pull/12
triggers a bot to generate a webrev
https://openjdk.github.io/cr/skara/12/webrev.00
and initiate a corresponding thread on the skara-dev mailing list:
https://mail.openjdk.java.net/pipermail/skara-dev/2019-June/000119.html
Cheers,
-Joe
[1] https://insights.stackoverflow.com/survey/2015#tech-sourcecontrol
[2] https://insights.stackoverflow.com/survey/2018/#work-_-version-control
More information about the discuss
mailing list