Mercurial > hg
view tests/test-grep @ 11541:ab9fa7a85dd9 stable
filelog: cmp: don't read data if hashes are identical (issue2273)
filelog.renamed() is an expensive call as it reads the filelog if p1 == nullid.
It's more efficient to first compute the hash, and to bail early if
the computed hash is the same as the stored nodeid.
'samehashes' variable is not strictly necessary, but helps for comprehension.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Mon, 05 Jul 2010 19:49:54 +0900 |
parents | df5d1d571d27 |
children |
line wrap: on
line source
#!/bin/sh mkdir t cd t hg init echo import > port hg add port hg commit -m 0 -u spam -d '0 0' echo export >> port hg commit -m 1 -u eggs -d '1 0' echo export > port echo vaportight >> port echo 'import/export' >> port hg commit -m 2 -u spam -d '2 0' echo 'import/export' >> port hg commit -m 3 -u eggs -d '3 0' head -n 3 port > port1 mv port1 port hg commit -m 4 -u spam -d '4 0' echo % pattern error hg grep '**test**' echo % simple hg grep port port echo % simple with color hg --config extensions.color= grep --config color.mode=ansi \ --color=always port port echo % all hg grep --traceback --all -nu port port echo % other hg grep import port hg cp port port2 hg commit -m 4 -u spam -d '5 0' echo % follow hg grep --traceback -f 'import$' port2 echo deport >> port2 hg commit -m 5 -u eggs -d '6 0' hg grep -f --all -nu port port2 cd .. hg init t2 cd t2 hg grep foobar foo hg grep foobar echo blue >> color echo black >> color hg add color hg ci -m 0 echo orange >> color hg ci -m 1 echo black > color hg ci -m 2 echo orange >> color echo blue >> color hg ci -m 3 hg grep orange hg grep --all orange echo % match in last "line" without newline python -c 'fp = open("noeol", "wb"); fp.write("no infinite loop"); fp.close();' hg ci -Amnoeol echo % last character omitted in output to avoid infinite loop hg grep loop # Got a traceback when using grep on a single # revision with renamed files. cd .. echo % issue 685 hg init issue685 cd issue685 echo octarine > color hg ci -Amcolor hg rename color colour hg ci -Am rename hg grep octarine # Used to crash here hg grep -r 1 octarine # Issue337: test that grep follows parent-child relationships instead # of just using revision numbers. cd .. echo % issue 337 hg init issue337 cd issue337 echo white > color hg commit -A -m "0 white" echo red > color hg commit -A -m "1 red" hg update 0 echo black > color hg commit -A -m "2 black" hg update --clean 1 echo blue > color hg commit -A -m "3 blue" hg grep --all red