tests/test-addremove-similar.t
changeset 11851 db955418a6af
parent 8489 1a96f1d9599b
child 12316 4134686b83e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-addremove-similar.t	Sat Aug 14 02:17:59 2010 +0200
@@ -0,0 +1,99 @@
+  $ hg init rep; cd rep
+
+  $ touch empty-file
+  $ python -c 'for x in range(10000): print x' > large-file
+
+  $ hg addremove
+  adding empty-file
+  adding large-file
+
+  $ hg commit -m A
+
+  $ rm large-file empty-file
+  $ python -c 'for x in range(10,10000): print x' > another-file
+
+  $ hg addremove -s50
+  adding another-file
+  removing empty-file
+  removing large-file
+  recording removal of large-file as rename to another-file (99% similar)
+
+  $ hg commit -m B
+
+comparing two empty files caused ZeroDivisionError in the past
+
+  $ hg update -C 0
+  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ rm empty-file
+  $ touch another-empty-file
+  $ hg addremove -s50
+  adding another-empty-file
+  removing empty-file
+
+  $ cd ..
+
+  $ hg init rep2; cd rep2
+
+  $ python -c 'for x in range(10000): print x' > large-file
+  $ python -c 'for x in range(50): print x' > tiny-file
+
+  $ hg addremove
+  adding large-file
+  adding tiny-file
+
+  $ hg commit -m A
+
+  $ python -c 'for x in range(70): print x' > small-file
+  $ rm tiny-file
+  $ rm large-file
+
+  $ hg addremove -s50
+  removing large-file
+  adding small-file
+  removing tiny-file
+  recording removal of tiny-file as rename to small-file (82% similar)
+
+  $ hg commit -m B
+
+should all fail
+
+  $ hg addremove -s foo
+  abort: similarity must be a number
+  $ hg addremove -s -1
+  abort: similarity must be between 0 and 100
+  $ hg addremove -s 1e6
+  abort: similarity must be between 0 and 100
+
+  $ cd ..
+
+issue 1527
+
+  $ hg init rep3; cd rep3
+  $ mkdir d
+  $ echo a > d/a
+  $ hg add d/a
+  $ hg commit -m 1
+
+  $ mv d/a d/b
+  $ hg addremove -s80
+  removing d/a
+  adding d/b
+  recording removal of d/a as rename to d/b (100% similar)
+  $ hg debugstate
+  r   0          0 1970-01-01 00:00:00 d/a
+  a   0         -1 unset               d/b
+  copy: d/a -> d/b
+  $ mv d/b c
+
+no copies found here (since the target isn't in d
+
+  $ hg addremove -s80 d
+  removing d/b
+
+copies here
+
+  $ hg addremove -s80
+  adding c
+  recording removal of d/a as rename to c (100% similar)
+
+  $ true