tests/test-inotify-debuginotify.t
author Alexander Plavin <me@aplavin.ru>
Thu, 04 Jul 2013 14:18:44 +0400
changeset 19387 f2e4fdb3dd27
parent 18590 104e120416ec
permissions -rw-r--r--
hgweb: code selection without line numbers in file source view All the source lines are put in a <pre> tag, which gives correct display and copy&paste in both Chromium (WebKit) and FireFox: line numbers are not copied, all the tabs and spaces are kept. This doesn't change the visual appearance of the view compared to current hgweb version and doesn't use any JS code. Also, stripes in this view are now generated clientside with CSS. This implementation is chosen because other variants have important issues: Strategy FF Chrome current D,LT,E,T,L D,L pre S,NW S,NW pre/div/nbsp LT,E,T,TS,NW TS,NW pre/div/br LT,E,T,NW NW ol/li/nbsp LT,E,T,TS,AJ TS,AJ ol/li/br LT,E,T,AJ AJ pre/span LV LV Legend Strategies: - current: implemented in hgweb before this patch, i.e. divs for each line, and line numbers links in the div too - pre: the whole code in one pre tag with newlines, all line numbers in another one with 'float: left' - pre/div/{nbsp,br}: same as just 'pre', but separate divs for each line and &nbsp; or <br> instead of empty lines (otherwise they are not copied at all) - ol/li/{nbsp,br}: a single ol with li's and divs for each line, &nbsp; or <br> same as in previous strategy - pre/span: this patch Problems: D = (very minor) display problems, like wrong width of leading tabs LT = loses leading/trailing whitespace E = loses embedded whitespace B = loses blank lines T = loses tabs L = selects line numbers LV = (only) visually selects line numbers LVE = (only) visually selects line numbers at empty lines S = no stripes (and no ability to easily highlight lines-which-are-linked-at in the future) TS = space copied instead of empty line AJ = get anchor links only with JS (they work even without) NW = no linewrap easily possible (in future) As for browser versions compatibility, the CSS tricks used are supported in (according to caniuse.com): a) line numbers generation with 'content:' property and CSS counters: IE 8+, all other popular browsers (in pre-WebKit Opera numbers are being copied) b) stripes ('nth-child' selector): IE 8+, FF 3.5+, Safari 3.2+, Opera 9.5+, all other popular browsers c) line numbers are not visually selected ('user-select:' property): IE 10+, Opera 15.0+, all other popular browsers This patch is based on a demo implementation by Martin Geisler <martin@geisler.net>.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
     1
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
     2
  $ "$TESTDIR/hghave" inotify || exit 80
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
     3
  $ hg init
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
     4
  $ echo "[extensions]" >> $HGRCPATH
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
     5
  $ echo "inotify=" >> $HGRCPATH
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
     6
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
     7
inserve
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
     8
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
     9
  $ hg inserve -d --pid-file=hg.pid
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    10
  $ cat hg.pid >> "$DAEMON_PIDS"
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
    11
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    12
let the daemon finish its stuff
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
    13
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    14
  $ sleep 1
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    15
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    16
empty
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
    17
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    18
  $ hg debuginotify
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    19
  directories being watched:
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    20
    /
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    21
    .hg/
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    22
  $ mkdir a
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    23
  $ sleep 1
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
    24
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    25
only 'a
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
    26
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    27
  $ hg debuginotify
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    28
  directories being watched:
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    29
    /
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    30
    .hg/
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    31
    a/
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    32
  $ rmdir a
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    33
  $ sleep 1
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
    34
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    35
empty again
8555
3e09bc5fee12 inotify: introduce debuginotify, which lists which paths are under watch
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
diff changeset
    36
12451
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    37
  $ hg debuginotify
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    38
  directories being watched:
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    39
    /
17ebf11bff81 tests: unify test-inotify-debuginotify
Matt Mackall <mpm@selenic.com>
parents: 8555
diff changeset
    40
    .hg/
18590
104e120416ec test-inotify-debuginotify.t: migrate to killdaemons from kill `cat pidfile`
Augie Fackler <raf@durin42.com>
parents: 12451
diff changeset
    41
  $ "$TESTDIR/killdaemons.py" hg.pid