Mercurial > hg-stable
view tests/crashgetbundler.py @ 40440:69d4c8c5c25e stable
subrepo: print the status line before creating the peer for better diagnostics
I ran into a problem where I tried updating to a different branch, and the
process appeared to hang. It turned out that the subrepo revision wasn't
available locally, and I must have originally cloned it from an `hg serve -S` on
a machine that currently wasn't serving anything. It took 2+ minutes to
timeout, and didn't mention what it was connecting to even then.
There are a couple of other issues in this scenario too.
- The repo is dirty after the failed checkout because the top level repo is
updated first. We should probably make 2 passes- top down to pull
everything needed, and then do an update once everything is in place.
- Something must be reading .hgsubstate from wdir because if the same merge
command is run after the timeout, a prompt is issued that the local and
remote subrepo diverged, instead of hanging. But it lists the local version
and remote version as having the same hash.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 16 Nov 2018 18:37:26 -0500 |
parents | f3807a135e43 |
children | 2372284d9457 |
line wrap: on
line source
from __future__ import absolute_import from mercurial.i18n import _ from mercurial import ( changegroup, error, extensions ) def abort(orig, *args, **kwargs): raise error.Abort(_('this is an exercise')) def uisetup(ui): extensions.wrapfunction(changegroup, 'getbundler', abort)