tests/test-rename-after-merge.t
author Matt Mackall <mpm@selenic.com>
Fri, 22 Jan 2016 12:08:20 -0600
branchstable
changeset 27945 4186d359046a
parent 16913 f2719b387380
child 34661 eb586ed5d8ce
permissions -rw-r--r--
log: speed up single file log with hidden revs (issue4747) On repos with lots of heads, the filelog() code could spend several minutes decompressing manifests. This change instead tries to efficiently scan the changelog for candidates and decompress as few manifests as possible. This is a regression introduced in 3.3 by the linkrev adjustment code. Prior to that, filelog was nearly instant. For the repo in the bug report, this improves time of a simple log command from ~3 minutes to ~.5 seconds, a 360x speedup. For the main Mercurial repo, a log of commands.py slows down from 1.14s to 1.45s, a 27% slowdown. This is still faster than the file() revset, which takes 2.1 seconds.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12328
diff changeset
     1
Issue746: renaming files brought by the second parent of a merge was
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12328
diff changeset
     2
broken.
5318
c6682cdada2f Test renaming files brought by merge second parent (issue 746)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     3
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
     4
Create source repository:
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
     5
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
     6
  $ hg init t
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
     7
  $ cd t
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
     8
  $ echo a > a
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
     9
  $ hg ci -Am a
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    10
  adding a
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    11
  $ cd ..
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    12
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    13
Fork source repository:
5318
c6682cdada2f Test renaming files brought by merge second parent (issue 746)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    14
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    15
  $ hg clone t t2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    16
  updating to branch default
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    17
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    18
  $ cd t2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    19
  $ echo b > b
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    20
  $ hg ci -Am b
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    21
  adding b
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    22
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    23
Update source repository:
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    24
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    25
  $ cd ../t
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    26
  $ echo a >> a
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    27
  $ hg ci -m a2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    28
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    29
Merge repositories:
5318
c6682cdada2f Test renaming files brought by merge second parent (issue 746)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    30
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    31
  $ hg pull ../t2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    32
  pulling from ../t2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    33
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    34
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    35
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    36
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    37
  added 1 changesets with 1 changes to 1 files (+1 heads)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    38
  (run 'hg heads' to see heads, 'hg merge' to merge)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    39
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    40
  $ hg merge
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    41
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    42
  (branch merge, don't forget to commit)
5318
c6682cdada2f Test renaming files brought by merge second parent (issue 746)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    43
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    44
  $ hg st
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    45
  M b
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    46
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    47
Rename b as c:
5318
c6682cdada2f Test renaming files brought by merge second parent (issue 746)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    48
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    49
  $ hg mv b c
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    50
  $ hg st
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    51
  A c
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    52
  R b
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    53
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    54
Rename back c as b:
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    55
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    56
  $ hg mv c b
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    57
  $ hg st
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    58
  M b
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    59
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    60
  $ cd ..
7689
d821ea464465 Fix a corner case when committing a rename after a merge (issue1476)
Patrick Mezard <pmezard@gmail.com>
parents: 5608
diff changeset
    61
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12328
diff changeset
    62
Issue 1476: renaming a first parent file into another first parent
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12328
diff changeset
    63
file while none of them belong to the second parent was broken
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    64
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    65
  $ hg init repo1476
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    66
  $ cd repo1476
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    67
  $ echo a > a
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    68
  $ hg ci -Am adda
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    69
  adding a
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    70
  $ echo b1 > b1
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    71
  $ echo b2 > b2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    72
  $ hg ci -Am changea
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    73
  adding b1
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    74
  adding b2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    75
  $ hg up -C 0
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    76
  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    77
  $ echo c1 > c1
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    78
  $ echo c2 > c2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    79
  $ hg ci -Am addcandd
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    80
  adding c1
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    81
  adding c2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    82
  created new head
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    83
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    84
Merge heads:
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    85
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    86
  $ hg merge
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    87
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    88
  (branch merge, don't forget to commit)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    89
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    90
  $ hg mv -Af c1 c2
7689
d821ea464465 Fix a corner case when committing a rename after a merge (issue1476)
Patrick Mezard <pmezard@gmail.com>
parents: 5608
diff changeset
    91
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    92
Commit issue 1476:
7689
d821ea464465 Fix a corner case when committing a rename after a merge (issue1476)
Patrick Mezard <pmezard@gmail.com>
parents: 5608
diff changeset
    93
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    94
  $ hg ci -m merge
7689
d821ea464465 Fix a corner case when committing a rename after a merge (issue1476)
Patrick Mezard <pmezard@gmail.com>
parents: 5608
diff changeset
    95
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    96
  $ hg log -r tip -C -v | grep copies
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    97
  copies:      c2 (c1)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    98
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
    99
  $ hg rollback
13446
1e497df514e2 rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents: 12399
diff changeset
   100
  repository tip rolled back to revision 2 (undo commit)
13455
053c042118bc rollback, i18n: avoid parameterized message
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 13446
diff changeset
   101
  working directory now based on revisions 2 and 1
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   102
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   103
  $ hg up -C .
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   104
  2 files updated, 0 files merged, 2 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   105
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   106
Merge heads again:
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   107
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   108
  $ hg merge
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   109
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   110
  (branch merge, don't forget to commit)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   111
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   112
  $ hg mv -Af b1 b2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   113
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   114
Commit issue 1476 with a rename on the other side:
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   115
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   116
  $ hg ci -m merge
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   117
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   118
  $ hg log -r tip -C -v | grep copies
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   119
  copies:      b2 (b1)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 7689
diff changeset
   120
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13455
diff changeset
   121
  $ cd ..