Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-issue322 @ 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 | 7a7d4937272b |
rev | line source |
---|---|
2946 | 1 #!/bin/sh |
2 # http://www.selenic.com/mercurial/bts/issue322 | |
3 | |
2949
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
4 echo % file replaced with directory |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
5 |
2946 | 6 hg init a |
7 cd a | |
8 echo a > a | |
9 hg commit -Ama | |
10 rm a | |
11 mkdir a | |
12 echo a > a/a | |
13 | |
2949
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
14 echo % should fail - would corrupt dirstate |
2946 | 15 hg add a/a |
2949
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
16 |
2946 | 17 cd .. |
18 | |
2949
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
19 echo % directory replaced with file |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
20 |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
21 hg init c |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
22 cd c |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
23 mkdir a |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
24 echo a > a/a |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
25 hg commit -Ama |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
26 |
3988
9dcf9d45cab8
Don't use -f for rm in tests where not needed. Drop /bin/ from /bin/rm.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2953
diff
changeset
|
27 rm -r a |
2949
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
28 echo a > a |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
29 |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
30 echo % should fail - would corrupt dirstate |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
31 hg add a |
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
32 |
2953 | 33 cd .. |
34 | |
35 echo % directory replaced with file | |
2949
7356fa3cff2c
add other dir/file case to test for issue322.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2946
diff
changeset
|
36 |
2953 | 37 hg init d |
38 cd d | |
39 mkdir b | |
40 mkdir b/c | |
41 echo a > b/c/d | |
42 hg commit -Ama | |
3988
9dcf9d45cab8
Don't use -f for rm in tests where not needed. Drop /bin/ from /bin/rm.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2953
diff
changeset
|
43 rm -r b |
2953 | 44 echo a > b |
45 | |
46 echo % should fail - would corrupt dirstate | |
47 hg add b | |
48 | |
49 exit 0 |