Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-pull-pull-corruption @ 4135:6cb6cfe43c5d
Avoid some false positives for addremove -s
The original code uses the similary score
1 - len(diff(after, before)) / len(after)
The diff can at most be the size of the 'before' file, so any small
'before' file would be considered very similar. Removing an empty file
would cause all files added in the same revision to be considered
copies of the removed file.
This changes the metric to
bytes_overlap(before, after) / len(before + after)
i.e. the actual percentage of bytes shared between the two files.
author | Erling Ellingsen <erlingalf@gmail.com> |
---|---|
date | Sun, 18 Feb 2007 20:39:25 +0100 |
parents | 81ca1a9bd061 |
children |
line wrap: on
line source
#!/bin/sh # # Corrupt an hg repo with two pulls. # # create one repo with a long history hg init source1 cd source1 touch foo hg add foo for i in 1 2 3 4 5 6 7 8 9 10; do echo $i >> foo hg ci -m $i done cd .. # create one repo with a shorter history hg clone -r 0 source1 source2 cd source2 echo a >> foo hg ci -m a cd .. # create a third repo to pull both other repos into it hg init corrupted cd corrupted # use a hook to make the second pull start while the first one is still running echo '[hooks]' >> .hg/hgrc echo 'prechangegroup = sleep 5' >> .hg/hgrc # start a pull... hg pull ../source1 & # ... and start another pull before the first one has finished sleep 1 hg pull ../source2 2>/dev/null # see the result wait hg verify