##// END OF EJS Templates
context: stop catching RepoLookupError from namespace.singlenode()...
context: stop catching RepoLookupError from namespace.singlenode() As pointed out by Yuya, the RepoLookupError was there for catching errors from repo.branchtip(). However, since 885c0290f7d5 (localrepo: add ignoremissing parameter to branchtip, 2014-10-16), that should no longer happen. I think it should now be an error if a namespace raises a RepoLookupError, so we propagate the exception up and and make it easy to fix, rather than trying to interpret the changeid as nodeid prefix and raise a general "unknown revision '...'" error. I also don't think we should catch FilteredLookupError and LookupError from the changelog.rev() call, for the same reason as above: If a namespace returns a node that doesn't exist, we should provide a more helpful exception than "unknown revision '...'". Differential Revision: https://phab.mercurial-scm.org/D3145

File last commit:

r32940:75be1499 default
r37409:3198d5a2 default
Show More
test-addremove-similar.t
174 lines | 3.8 KiB | text/troff | Tads3Lexer
/ tests / test-addremove-similar.t
Martin Geisler
tests: unify test-addremove-similar
r11851 $ hg init rep; cd rep
$ touch empty-file
timeless
tests: test-addremove-similar.t use print() for py3
r29174 $ $PYTHON -c 'for x in range(10000): print(x)' > large-file
Martin Geisler
tests: unify test-addremove-similar
r11851
$ hg addremove
adding empty-file
adding large-file
$ hg commit -m A
$ rm large-file empty-file
timeless
tests: test-addremove-similar.t use print() for py3
r29174 $ $PYTHON -c 'for x in range(10,10000): print(x)' > another-file
Martin Geisler
tests: unify test-addremove-similar
r11851
$ 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
timeless
tests: test-addremove-similar.t use print() for py3
r29174 $ $PYTHON -c 'for x in range(10000): print(x)' > large-file
$ $PYTHON -c 'for x in range(50): print(x)' > tiny-file
Martin Geisler
tests: unify test-addremove-similar
r11851
$ hg addremove
adding large-file
adding tiny-file
$ hg commit -m A
timeless
tests: test-addremove-similar.t use print() for py3
r29174 $ $PYTHON -c 'for x in range(70): print(x)' > small-file
Martin Geisler
tests: unify test-addremove-similar
r11851 $ 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
Yuya Nishihara
similar: sort files not by object id but by path for stable result...
r31579 should be sorted by path for stable result
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ for i in `$PYTHON $TESTDIR/seq.py 0 9`; do
Yuya Nishihara
similar: sort files not by object id but by path for stable result...
r31579 > cp small-file $i
> done
$ rm small-file
$ hg addremove
adding 0
adding 1
adding 2
adding 3
adding 4
adding 5
adding 6
adding 7
adding 8
adding 9
removing small-file
recording removal of small-file as rename to 0 (100% similar)
recording removal of small-file as rename to 1 (100% similar)
recording removal of small-file as rename to 2 (100% similar)
recording removal of small-file as rename to 3 (100% similar)
recording removal of small-file as rename to 4 (100% similar)
recording removal of small-file as rename to 5 (100% similar)
recording removal of small-file as rename to 6 (100% similar)
recording removal of small-file as rename to 7 (100% similar)
recording removal of small-file as rename to 8 (100% similar)
recording removal of small-file as rename to 9 (100% similar)
$ hg commit -m '10 same files'
pick one from many identical files
$ cp 0 a
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ rm `$PYTHON $TESTDIR/seq.py 0 9`
Yuya Nishihara
similar: sort files not by object id but by path for stable result...
r31579 $ hg addremove
removing 0
removing 1
removing 2
removing 3
removing 4
removing 5
removing 6
removing 7
removing 8
removing 9
adding a
Yuya Nishihara
similar: take the first match instead of the last...
r31583 recording removal of 0 as rename to a (100% similar)
Yuya Nishihara
similar: sort files not by object id but by path for stable result...
r31579 $ hg revert -aq
pick one from many similar files
$ cp 0 a
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ for i in `$PYTHON $TESTDIR/seq.py 0 9`; do
Yuya Nishihara
similar: sort files not by object id but by path for stable result...
r31579 > echo $i >> $i
> done
$ hg commit -m 'make them slightly different'
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ rm `$PYTHON $TESTDIR/seq.py 0 9`
Yuya Nishihara
similar: sort files not by object id but by path for stable result...
r31579 $ hg addremove -s50
removing 0
removing 1
removing 2
removing 3
removing 4
removing 5
removing 6
removing 7
removing 8
removing 9
adding a
Yuya Nishihara
similar: take the first match instead of the last...
r31583 recording removal of 0 as rename to a (99% similar)
Yuya Nishihara
similar: sort files not by object id but by path for stable result...
r31579 $ hg commit -m 'always the same file should be selected'
Martin Geisler
tests: unify test-addremove-similar
r11851 should all fail
$ hg addremove -s foo
abort: similarity must be a number
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-addremove-similar
r11851 $ hg addremove -s -1
abort: similarity must be between 0 and 100
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-addremove-similar
r11851 $ hg addremove -s 1e6
abort: similarity must be between 0 and 100
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Martin Geisler
tests: unify test-addremove-similar
r11851
$ cd ..
Pierre-Yves David
error: get Abort from 'error' instead of 'util'...
r26587 Issue1527: repeated addremove causes Abort
Martin Geisler
tests: unify test-addremove-similar
r11851
$ 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
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 recording removal of d/a as rename to d/b (100% similar)
Martin Geisler
tests: unify test-addremove-similar
r11851 $ 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
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing d/b
Martin Geisler
tests: unify test-addremove-similar
r11851
copies here
$ hg addremove -s80
adding c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 recording removal of d/a as rename to c (100% similar)
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..