Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-manifest-merging @ 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 | 9dcf9d45cab8 |
children |
line wrap: on
line source
#!/bin/sh echo % init foo-base hg init foo-base echo % create alpha in first repo cd foo-base echo 'alpha' > alpha hg ci -A -m 'add alpha' -d '1 0' cd .. echo % clone foo-base to foo-work hg clone foo-base foo-work echo % create beta in second repo cd foo-work echo 'beta' > beta hg ci -A -m 'add beta' -d '2 0' cd .. echo % create gamma in first repo cd foo-base echo 'gamma' > gamma hg ci -A -m 'add gamma' -d '3 0' cd .. echo % pull into work and merge cd foo-work hg pull -q hg merge echo % revert to changeset 1 to simulate a failed merge rm alpha beta gamma hg up -C 1