Understanding the relationship of mercurial and it's extensions

Marcin Kasperski Marcin.Kasperski at mekk.waw.pl
Tue Aug 29 14:28:24 UTC 2023


> 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.

Disagree.

(hg-git specific)

1. hg-git has non-trivial dependencies (dulwich) so „bringing it inside”
   would also mean managing such external dependency (from resolving
   problems with having it installed on all supported platforms to
   making new Mercurial releases in case some incompatible change
   is brought into such dep).

(general remarks about core/non-core extensions)

2. Plenty of people use „older” Mercurials (which they find packaged on
   various distributions/systems). Author of externally managed
   extension can opt to support such older mercurial versions, giving
   users chance to install extension updates without the need to install
   mercurial.

3. Combining releases always introduce additional effort. If extension
   is developed and maintained by separate author or team, it is easier
   for them to develop it and publish releases whenever some functionality
   is ready than to offer patches and wait for mercurial release. The
   bigger and more complicated the extension, the more it matters.


PS IMHO word „experimental” is overused by Mercurial, also some error
handling routines tend to blame extensions far too easily.


More information about the Mercurial mailing list