Understanding the relationship of mercurial and it's extensions
Tony Mechelynck
antoine.mechelynck at gmail.com
Mon Aug 28 23:54:04 UTC 2023
I'm the one who asked the original question. Ernie seemed (to me)
waxing dithyrambic about some third-party "hg-git" extension, so I
looked in the Mercurial (version 6.5.1) help if there might exist
something similar built-in. "hg help extensions" mentioned an
extension named "git" with the word EXPERIMENTAL in capitals next to
it, so I ran "hg --config extensions.git= help git" to know more
about it. What I saw seemed written for the one and only purpose of
scaring people away. Still, the presence of that extension
(experimental and not deprecated) seems to indicate that it is
intended to be made better eventually. One way to do that, if that
third-party extension is really so much better, would be to capitalize
on it and, if possible, bring it inside. A problem might be a possible
restrictive license, incompatible with the Mercurial license; but I'm
sure such things can be solved with enough goodwill on both sides.
Best regards,
Tony.
On Tue, Aug 29, 2023 at 1:00 AM John W <jwdevel at gmail.com> wrote:
>
> I'm not a maintainer, so can't speak to that, but broadly:
>
> By "adopted it", he might have meant "included it in core Mercurial".
> Some extensions are included in that way. There's a list on the
> wiki[1].
>
> Looking at hg-git's wiki page[2], you can see it "is not distributed
> with Mercurial". So, that *might* be the distinction they were talking
> about.
>
> I think the Mercurial devs generally avoid adding more core
> extensions. Several of the existing supported ones are only there for
> backwards-compatibility. A number of them would probably not make the
> cut today, if they were proposed for being included.
>
> Personally, I think this is a good thing — keeps Mercurial modular,
> less maintenance burden, etc.
>
> You might want to read the "Using Mercurial Extensions"[3] wiki page;
> it has good general info.
>
> Also, it's important to know that extensions use Mercurial's
> *internal* API, which is not guaranteed to be stable. So, maintaining
> an extension is more work than maintaining something that uses the
> public API (which is precisely the CLI). Read more here[4].
>
> -John
>
> [1] https://wiki.mercurial-scm.org/UsingExtensions#Extensions_bundled_with_Mercurial
> [2] https://wiki.mercurial-scm.org/HgGit
> [3] https://wiki.mercurial-scm.org/UsingExtensions
> [4] https://wiki.mercurial-scm.org/MercurialApi
>
> On 8/28/23, Ernie Rael <errael at raelity.com> wrote:
> > I was just communicating with someone who has depended on a mercurial
> > repo that mirrors a repo on github. That mirror is going away, I
> > suggested he give hg-git a try.
> >
> > He responded with a question I can't answer
> >
> >
> >> If that hg-git extension you mention is so good, why haven't the
> >> Mercurial maintainers adopted it ?
> >
> > I'm not even sure what he meant by this question (I suggested that maybe
> > some of them do). I guess his concern is reliability, and me saying I've
> > been using it for years and there's been a lot of work on it lately
> > doesn't cut it.
> >
> > But it did get me thinking about the relationship of things. Any
> > suggestions on discovering more about this topic?
> >
> > -ernie
> >
> > _______________________________________________
> > Mercurial mailing list
> > Mercurial at lists.mercurial-scm.org
> > https://lists.mercurial-scm.org/mailman/listinfo/mercurial
> >
> _______________________________________________
> Mercurial mailing list
> Mercurial at lists.mercurial-scm.org
> https://lists.mercurial-scm.org/mailman/listinfo/mercurial
More information about the Mercurial
mailing list