Mercurial > hg
view tests/test-clone-pull-corruption @ 6369:53912d30ac40
Avoid calling heads() twice on every hg commit.
In an extreme case (merging two revisions with very low revision numbers)
this could be slower than the previous code, but it should be much faster
in the usual cases (parents are near the tip). It also avoids some races
in some uninteresting cases (e.g. two concurrent hg commits).
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sun, 23 Mar 2008 21:03:24 -0300 |
parents | 81ca1a9bd061 |
children |
line wrap: on
line source
#!/bin/sh # # Corrupt an hg repo with a pull started during an aborted commit # # Create two repos, so that one of them can pull from the other one. hg init source cd source touch foo hg add foo hg ci -m 'add foo' hg clone . ../corrupted echo >> foo hg ci -m 'change foo' # Add a hook to wait 5 seconds and then abort the commit cd ../corrupted echo '[hooks]' >> .hg/hgrc echo 'pretxncommit = sleep 5; exit 1' >> .hg/hgrc # start a commit... touch bar hg add bar hg ci -m 'add bar' & # ... and start a pull while the commit is still running sleep 1 hg pull ../source 2>/dev/null # see what happened wait hg verify