Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-clone-pull-corruption @ 2021:fc22ed56afe3
Fix hg push and hg push -r sometimes creating new heads without --force.
Fixing issue179.
The algorithm checks if there not more new heads on the remote side than heads
which become non-heads due to getting children.
Pushing this repo:
m
/\
3 3a|
|/ /
2 2a
|/
1
to a repo only having 1, 2 and 3 didn't abort requiring --force before.
Added test cases for this and some doc strings for used methods.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Wed, 29 Mar 2006 22:35:21 +0200 |
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