hg-git performance on large git repositories.

Dan Villiom Podlaski Christiansen danchr at gmail.com
Tue Sep 21 15:02:39 UTC 2021


On 20 Sep 2021, at 14.24, Uwe Brauer <oub at mat.ucm.es> wrote:

>> Which version of hg-git, Mercurial and Python are you running?
> 
> Well aehm (since I need the artemis extension which requires python 2.7)
> 
> Hg:
> I use version 5.2rc0+20200125 (on Ubuntu 16.04)
> 
> Hg-git (I use a very particular change set committed by Manuel Jacob,
> that allows named branches to be pushed as git branches, it does work
> the other way around. We talked about it and I am keen to give your
> implementation a try. I hoped to port artemis to python 3.X but I have
> not very much time, and frankly don't use python that much.
> 
> So hg-git change set acc4280e2ab7
> topic export-additional-refs
> 
> And of course also 3ad09bbcbe3e
> which has a different topic namely 
> topic same-ref-for-multiple-changesets
> 
> Well that is I know more than 2 years old
> 
> That might be one reason.....

Well, all of those are either very old, unsupported, or both…

> 
>>> I have also the evolve extension enabled, I disabled it, but it did not make any difference.
>>> 
>>> 
>>> Does or did anybody notice something similar?
> 
>> I regularly use Mercurial with a repository[1] with ~188k commits and
>> a ~44k files in total. I haven't noticed any particular slowness,
>> apart from status and so on — which is to be expected with that many
>> files.
> 
>> [1] https://github.com/macports/macports-ports
> 
> Oh you are a mac user. If you are bored and have a lot of free time, I
> would be very interested if you could clone the GNU emacs repository
> (however that took I think 2 hours ahem) and tell me what is your
> experience
> 
> git://git.savannah.gnu.org/emacs.git

On my Mac,[1] updating from `null` to `master` takes about 2 seconds with that repository.[2] Please note that stuff like updating depends on how many files and directories exist in the repository, even if untracked. Also note that you can check whether it's an issue with an extension by either:

1) Disabling extensions one-by-one using either something like `--config extensions.hggit=!` or editing hgrc.
2) Bypassing configuration entirely, using e.g. `HGRCPATH=/dev/null HGRCSKIPREPO=1 hg status`.

[1] A 2 GHz quad-core MBP from 2020.
[2] Mirrored at <https://villiom.dk/emacs> — although the server is somewhat underpowered and unstable.

--

Dan Villiom Podlaski Christiansen
danchr at gmail.com — +45 2728 9771




More information about the Mercurial mailing list