tests/test-empty-group.t
author Alexander Plavin <me@aplavin.ru>
Thu, 04 Jul 2013 14:18:44 +0400
changeset 19387 f2e4fdb3dd27
parent 14162 301725c3df9a
child 34661 eb586ed5d8ce
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:
4659
7a7d4937272b Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3853
diff changeset
     1
#  A          B
7a7d4937272b Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3853
diff changeset
     2
#
7a7d4937272b Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3853
diff changeset
     3
#  3  4       3
7a7d4937272b Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3853
diff changeset
     4
#  |\/|       |\
7a7d4937272b Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3853
diff changeset
     5
#  |/\|       | \
7a7d4937272b Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3853
diff changeset
     6
#  1  2       1  2
7a7d4937272b Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3853
diff changeset
     7
#  \ /        \ /
2339
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
     8
#   0          0
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
     9
#
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    10
# if the result of the merge of 1 and 2
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    11
# is the same in 3 and 4, no new manifest
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    12
# will be created and the manifest group
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    13
# will be empty during the pull
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    14
#
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    15
# (plus we test a failure where outgoing
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    16
# wrongly reported the number of csets)
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    17
12189
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    18
  $ hg init a
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    19
  $ cd a
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    20
  $ touch init
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    21
  $ hg ci -A -m 0
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    22
  adding init
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    23
  $ touch x y
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    24
  $ hg ci -A -m 1
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    25
  adding x
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    26
  adding y
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    27
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    28
  $ hg update 0
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    29
  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    30
  $ touch x y
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    31
  $ hg ci -A -m 2
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    32
  adding x
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    33
  adding y
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    34
  created new head
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    35
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    36
  $ hg merge 1
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    37
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    38
  (branch merge, don't forget to commit)
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    39
  $ hg ci -A -m m1
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    40
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    41
  $ hg update -C 1
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    42
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    43
  $ hg merge 2
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    44
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    45
  (branch merge, don't forget to commit)
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    46
  $ hg ci -A -m m2
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    47
  created new head
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    48
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    49
  $ cd ..
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    50
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    51
  $ hg clone -r 3 a b
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    52
  adding changesets
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    53
  adding manifests
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    54
  adding file changes
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    55
  added 4 changesets with 3 changes to 3 files
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    56
  updating to branch default
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    57
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    58
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    59
  $ hg clone -r 4 a c
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    60
  adding changesets
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    61
  adding manifests
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    62
  adding file changes
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    63
  added 4 changesets with 3 changes to 3 files
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    64
  updating to branch default
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    65
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
2339
11422943cf72 document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    66
12189
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    67
  $ hg -R a outgoing b
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    68
  comparing with b
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    69
  searching for changes
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 12847
diff changeset
    70
  changeset:   4:1ec3c74fc0e0
12189
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    71
  tag:         tip
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    72
  parent:      1:79f9e10cd04e
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    73
  parent:      2:8e1bb01c1a24
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    74
  user:        test
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    75
  date:        Thu Jan 01 00:00:00 1970 +0000
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    76
  summary:     m2
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    77
  
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    78
  $ hg -R a outgoing c
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    79
  comparing with c
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    80
  searching for changes
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 12847
diff changeset
    81
  changeset:   3:d15a0c284984
12189
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    82
  parent:      2:8e1bb01c1a24
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    83
  parent:      1:79f9e10cd04e
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    84
  user:        test
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    85
  date:        Thu Jan 01 00:00:00 1970 +0000
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    86
  summary:     m1
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    87
  
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    88
  $ hg -R b outgoing c
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    89
  comparing with c
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    90
  searching for changes
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 12847
diff changeset
    91
  changeset:   3:d15a0c284984
12189
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    92
  tag:         tip
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    93
  parent:      2:8e1bb01c1a24
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    94
  parent:      1:79f9e10cd04e
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    95
  user:        test
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    96
  date:        Thu Jan 01 00:00:00 1970 +0000
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    97
  summary:     m1
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    98
  
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    99
  $ hg -R c outgoing b
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   100
  comparing with b
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   101
  searching for changes
14162
301725c3df9a localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 12847
diff changeset
   102
  changeset:   3:1ec3c74fc0e0
12189
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   103
  tag:         tip
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   104
  parent:      1:79f9e10cd04e
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   105
  parent:      2:8e1bb01c1a24
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   106
  user:        test
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   107
  date:        Thu Jan 01 00:00:00 1970 +0000
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   108
  summary:     m2
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   109
  
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   110
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   111
  $ hg -R b pull a
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   112
  pulling from a
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   113
  searching for changes
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   114
  adding changesets
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   115
  adding manifests
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   116
  adding file changes
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   117
  added 1 changesets with 0 changes to 0 files (+1 heads)
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   118
  (run 'hg heads' to see heads, 'hg merge' to merge)
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   119
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   120
  $ hg -R c pull a
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   121
  pulling from a
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   122
  searching for changes
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   123
  adding changesets
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   124
  adding manifests
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   125
  adding file changes
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   126
  added 1 changesets with 0 changes to 0 files (+1 heads)
fb0c6373ec36 tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   127
  (run 'hg heads' to see heads, 'hg merge' to merge)