Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-commit @ 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 | 8d603f8567ae |
children | 9e3e975258a9 |
line wrap: on
line source
#!/bin/sh cleanpath() { sed -e "s:/.*\(/test/.*\):...\1:" } echo % commit date test hg init test cd test echo foo > foo hg add foo hg commit -d '0 0' -m commit-1 echo foo >> foo hg commit -d '1 4444444' -m commit-3 hg commit -d '1 15.1' -m commit-4 hg commit -d 'foo bar' -m commit-5 hg commit -d ' 1 4444' -m commit-6 hg commit -d '111111111111 0' -m commit-7 echo % partial commit test echo bar > bar hg add bar rm bar hg commit -d "1000000 0" -m commit-8 2>&1 | cleanpath hg -q revert -a --no-backup mkdir dir echo boo > dir/file hg add hg -v commit -d '0 0' -m commit-9 dir echo > dir.file hg add hg commit -d '0 0' -m commit-10 dir dir.file 2>&1 | cleanpath echo >> dir/file mkdir bleh mkdir dir2 cd bleh hg commit -d '0 0' -m commit-11 . 2>&1 | cleanpath hg commit -d '0 0' -m commit-12 ../dir ../dir2 2>&1 | cleanpath hg -v commit -d '0 0' -m commit-13 ../dir cd .. hg commit -d '0 0' -m commit-14 does-not-exist 2>&1 | cleanpath ln -s foo baz hg commit -d '0 0' -m commit-15 baz 2>&1 | cleanpath touch quux hg commit -d '0 0' -m commit-16 quux 2>&1 | cleanpath echo >> dir/file hg -v commit -d '0 0' -m commit-17 dir/file cd .. echo % partial subdir commit test hg init test2 cd test2 mkdir foo echo foo > foo/foo mkdir bar echo bar > bar/bar hg add hg ci -d '1000000 0' -u test -m commit-subdir-1 foo hg ci -d '1000001 0' -u test -m commit-subdir-2 bar echo % subdir log 1 hg log -v foo echo % subdir log 2 hg log -v bar echo % full log hg log -v cd .. exit 0