Mercurial > hg
view tests/test-inotify-issue1208.t @ 16363:2cdd7e63211b
parsers: incrementally parse the revlog index in C
We only parse entries in a revlog index file when they are actually
needed, and cache them when first requested.
This makes a huge difference to performance on large revlogs when
accessing the tip revision or performing a handful of numeric lookups
(very common cases). For instance, "hg --time tip --template {node}"
on a tree with 300,000 revs takes 0.15 before, 0.02 after.
Even for revlog-intensive operations (e.g. running "hg log" to
completion), the lazy approach is about 1% faster than the eager
parse_index2.
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Thu, 05 Apr 2012 13:00:35 -0700 |
parents | fed4bb2c8def |
children | f2719b387380 |
line wrap: on
line source
$ "$TESTDIR/hghave" inotify || exit 80 $ echo "[extensions]" >> $HGRCPATH $ echo "inotify=" >> $HGRCPATH $ p="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" $ hg init $p $ cd $p fail $ ln -sf doesnotexist .hg/inotify.sock $ hg st abort: inotify-server: cannot start: .hg/inotify.sock is a broken symlink inotify-client: could not start inotify server: child process failed to start $ hg inserve abort: inotify-server: cannot start: .hg/inotify.sock is a broken symlink [255] $ rm .hg/inotify.sock inserve $ hg inserve -d --pid-file=hg.pid $ cat hg.pid >> "$DAEMON_PIDS" status $ hg status ? hg.pid if we try to start twice the server, make sure we get a correct error $ hg inserve -d --pid-file=hg2.pid abort: inotify-server: cannot start: socket is already bound abort: child process failed to start [255] $ kill `cat hg.pid`