view tests/test-locate.t @ 30816:96f811bceb85

hgweb: build the "entries" list directly in filelog command There's no apparent reason to have this "entries" generator function that builds a list and then yields its elements in reverse order and which is only called to build the "entries" list. So just build the list directly, in reverse order. Adjust "parity" generator's offset to keep rendering the same.
author Denis Laxalde <denis.laxalde@logilab.fr>
date Fri, 13 Jan 2017 10:22:25 +0100
parents bfe9ed85f27c
children 4441705b7111
line wrap: on
line source

  $ hg init repo
  $ cd repo
  $ echo 0 > a
  $ echo 0 > b
  $ echo 0 > t.h
  $ mkdir t
  $ echo 0 > t/x
  $ echo 0 > t/b
  $ echo 0 > t/e.h
  $ mkdir dir.h
  $ echo 0 > dir.h/foo

  $ hg ci -A -m m
  adding a
  adding b
  adding dir.h/foo
  adding t.h
  adding t/b
  adding t/e.h
  adding t/x

  $ touch nottracked

  $ hg locate a
  a

  $ hg locate NONEXISTENT
  [1]

  $ hg locate
  a
  b
  dir.h/foo
  t.h
  t/b
  t/e.h
  t/x

  $ hg rm a
  $ hg ci -m m

  $ hg locate a
  [1]
  $ hg locate NONEXISTENT
  [1]
  $ hg locate relpath:NONEXISTENT
  [1]
  $ hg locate
  b
  dir.h/foo
  t.h
  t/b
  t/e.h
  t/x
  $ hg locate -r 0 a
  a
  $ hg locate -r 0 NONEXISTENT
  [1]
  $ hg locate -r 0 relpath:NONEXISTENT
  [1]
  $ hg locate -r 0
  a
  b
  dir.h/foo
  t.h
  t/b
  t/e.h
  t/x

-I/-X with relative path should work:

  $ cd t
  $ hg locate
  b
  dir.h/foo
  t.h
  t/b
  t/e.h
  t/x
  $ hg locate -I ../t
  t/b
  t/e.h
  t/x

Issue294: hg remove --after dir fails when dir.* also exists

  $ cd ..
  $ rm -r t

  $ hg rm t/b

  $ hg locate 't/**'
  t/b (glob)
  t/e.h (glob)
  t/x (glob)

  $ hg files
  b
  dir.h/foo (glob)
  t.h
  t/e.h (glob)
  t/x (glob)
  $ hg files b
  b

  $ mkdir otherdir
  $ cd otherdir

  $ hg files path:
  ../b (glob)
  ../dir.h/foo (glob)
  ../t.h (glob)
  ../t/e.h (glob)
  ../t/x (glob)
  $ hg files path:.
  ../b (glob)
  ../dir.h/foo (glob)
  ../t.h (glob)
  ../t/e.h (glob)
  ../t/x (glob)

  $ hg locate b
  ../b (glob)
  ../t/b (glob)
  $ hg locate '*.h'
  ../t.h (glob)
  ../t/e.h (glob)
  $ hg locate path:t/x
  ../t/x (glob)
  $ hg locate 're:.*\.h$'
  ../t.h (glob)
  ../t/e.h (glob)
  $ hg locate -r 0 b
  ../b (glob)
  ../t/b (glob)
  $ hg locate -r 0 '*.h'
  ../t.h (glob)
  ../t/e.h (glob)
  $ hg locate -r 0 path:t/x
  ../t/x (glob)
  $ hg locate -r 0 're:.*\.h$'
  ../t.h (glob)
  ../t/e.h (glob)

  $ hg files
  ../b (glob)
  ../dir.h/foo (glob)
  ../t.h (glob)
  ../t/e.h (glob)
  ../t/x (glob)
  $ hg files .
  [1]

  $ cd ../..