Good news everyone!
We are taking on the largest pain-point in the
Mercurial community: integration with newest
collaborative development platforms.
Using the Mercurial version control system locally is pleasant, but when it
comes to start collaborating, things get bumpy.
For that reason, we have experimented with adding
Mercurial to the
Gitlab platform.
Yes, you read right, we are making it possible to use our favorite version
control system with the trendiest collaborative development platform.
We have built a prototype, that we and a few others now use internally. Now
that we have proven feasibility, we are in contact with Gitlab to work on
adding Mercurial support
upstream.
So far, we have received warm feedback. It cheers us up to push forward our
efforts to offer the best development workflow and developer experience for all
Mercurial users.
Version control is a critical part of the development workflow, but it is only
a part of it.
It needs to integrate with other tools in order to provide a complete workflow,
including access management, code review, continuous integration, continuous
deployment, ticket tracking, etc.
Over the years, these tools grew more and more powerful, becoming a larger part
of the developer experience.
Collaborative development platforms (forges) supporting Mercurial exist but
they now tend to lag behind the solutions existing around another version
control tool: Git.
Fortunately, a lot of what makes current collaborative development platforms so
appealing is only loosely related to the underlying version control system.
Which makes it relatively easy to add support for an alternative one.
That lack of support in the best collaborative development platforms out there
has been affecting Mercurial users for several years. We have decided to
contribute to a solution.
At Octobus, our core expertise is version control so the best course of action
for us is to collaborate with an existing platform for the rest of the
development tooling.
Why Pick Gitlab?
Gitlab has been one of the fastest growing platforms in the past couple of
years.
It has a strong feature set praised by many. We have seen all kinds of users
switching from Mercurial to Git just to be able to use it.
So the quality and the reputation of the product itself made us look into it.
Moreover, Gitlab has an open source version "Gitlab CE", provided under an MIT
license.
They have a healthy community with significant external open source
contribution. It fits with our own open source philosophy and allows us to
directly hack on the product core to add support for Mercurial.
Also, other open source communities, Gnome and Debian, picked Gitlab as their
tool. Having such serious actors of the free software world trust Gitlab was
important in our choice.
Why Mercurial?
You might be wondering: why pick Mercurial in 2018?.
Mercurial and Git are similar by many aspects.
They were created at the same time, by people from the same project, using the
same sources of inspiration and for the same use-cases. Yet they have
different implementations and made different choices that have a significant
impact on the user experience.
Having multiple tools offering similar services is beneficial for innovation.
Since their creations, the two projects have been reusing each other's good
ideas.
Overall, we believe Mercurial has a more extensible codebase allowing for more
innovation.
It has been used by large companies for several years, giving it pretty good
scalability properties. We find it has a clearer user experience for both
simple and advanced use-cases. Furthermore, the Mercurial development is very
much alive, meaning that things will keep getting better.
For example, we are getting real narrow cloning as a first class feature,
allowing developers to combine the performance of using a small repository and
the benefits of having a larger mono-repository.
The Changeset Evolution feature is also unlocking new collaboration
possibilities for team members.
However, we realized that all Mercurial powerful features needed an appropriate
ecosystem to achieve their full potential.
That is why it has become critical for Mercurial to be supported by
state-of-the-art collaborative development platforms.
In return, new features from Mercurial will help shape the workflow that those
platforms will offer in the future.
Why us?
At Octobus, we have been working on Mercurial for many years, getting involved
in its community.
Part of that involvement is talking to many users with diverse workflow,
structure and backgrounds.
We have been hearing more and more complaints about the lack of a good
collaborative development platform for Mercurial.
In the past two years, those grew at an alarming rate.
We are convinced that is the biggest challenge that Mercurial is facing today.
So, as much as we enjoy making the core of Mercurial faster and better, we
decided we had to do something to address that tooling issues.
What now?
In addition to discussing with Gitlab how to get the changes needed for
Mercurial support upstreamed, we are now improving our prototype, cleaning up
the code and making it more capable.
Our main goal is to provide people with a first class Mercurial experience with
Gitlab.
If you are interested in testing the prototype or in helping us achieve that
goal, please contact us at contact@octobus.net, or join us on
#octobus-hg IRC channel on Freenode
.
(And if you are a developer interested in the source control version world, we
are hiring.)