Mercurial > hg
view tests/library-infinitepush.sh @ 40655: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 | 03ff17a4bf53 |
children | 0826d684a1b5 |
line wrap: on
line source
scratchnodes() { for node in `find ../repo/.hg/scratchbranches/index/nodemap/* | sort`; do echo ${node##*/} `cat $node` done } scratchbookmarks() { for bookmark in `find ../repo/.hg/scratchbranches/index/bookmarkmap/* -type f | sort`; do echo "${bookmark##*/bookmarkmap/} `cat $bookmark`" done } setupcommon() { cat >> $HGRCPATH << EOF [extensions] infinitepush= [ui] ssh = python "$TESTDIR/dummyssh" [infinitepush] branchpattern=re:scratch/.* EOF } setupserver() { cat >> .hg/hgrc << EOF [infinitepush] server=yes indextype=disk storetype=disk reponame=babar EOF } waitbgbackup() { sleep 1 hg debugwaitbackup } mkcommitautobackup() { echo $1 > $1 hg add $1 hg ci -m $1 --config infinitepushbackup.autobackup=True } setuplogdir() { mkdir $TESTTMP/logs chmod 0755 $TESTTMP/logs chmod +t $TESTTMP/logs }