tests/test-generaldelta.t
author Gregory Szorc <gregory.szorc@gmail.com>
Sun, 17 Jul 2016 15:13:51 -0700
changeset 29593 953839de96ab
parent 29592 37cccad55410
child 30332 318a24b52eeb
permissions -rw-r--r--
bundle2: store changeset count when creating file bundles The bundle2 changegroup part has an advisory param saying how many changesets are in the part. Before this patch, we were setting this part when generating bundle2 parts via the wire protocol but not when generating local bundle2 files. A side effect of not setting the changeset count part is that progress bars don't work when applying changesets. As the tests show, this impacted clone bundles, shelve, backup bundles, `hg unbundle`, and anything touching bundle2 files. This patch adds a backdoor to allow us to pass state from changegroup generation into the unbundler. We store the number of changesets in the changegroup in this state and use it to populate the aforementioned advisory part parameter when generating the bundle2 bundle. I concede that I'm not thrilled by how state is being passed in changegroup.py (it feels a bit hacky). I would love to overhaul the rather confusing set of functions in changegroup.py with something that passes rich objects around instead of e.g. low-level generators. However, given the code freeze for 3.9 is imminent, I'd rather not undertake this endeavor right now. This feels like the easiest way to get the parameter added to the changegroup part.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19764
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     1
Check whether size of generaldelta revlog is not bigger than its
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     2
regular equivalent. Test would fail if generaldelta was naive
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     3
implementation of parentdelta: third manifest revision would be fully
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     4
inserted due to big distance from its paren revision (zero).
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     5
26913
f43689badeff test: enforce non-generaldelta base repository in 'test-generaldelta'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26907
diff changeset
     6
  $ hg init repo --config format.generaldelta=no --config format.usegeneraldelta=no
19764
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     7
  $ cd repo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     8
  $ echo foo > foo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
     9
  $ echo bar > bar
27190
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
    10
  $ echo baz > baz
19764
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    11
  $ hg commit -q -Am boo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    12
  $ hg clone --pull . ../gdrepo -q --config format.generaldelta=yes
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    13
  $ for r in 1 2 3; do
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    14
  >   echo $r > foo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    15
  >   hg commit -q -m $r
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    16
  >   hg up -q -r 0
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    17
  >   hg pull . -q -r $r -R ../gdrepo
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    18
  > done
19942
2c886dedd902 tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents: 19888
diff changeset
    19
19764
e92650e39f1c generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff changeset
    20
  $ cd ..
29485
6a98f9408a50 py3: make files use absolute_import and print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents: 27251
diff changeset
    21
  >>> from __future__ import print_function
19942
2c886dedd902 tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents: 19888
diff changeset
    22
  >>> import os
2c886dedd902 tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents: 19888
diff changeset
    23
  >>> regsize = os.stat("repo/.hg/store/00manifest.i").st_size
2c886dedd902 tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents: 19888
diff changeset
    24
  >>> gdsize = os.stat("gdrepo/.hg/store/00manifest.i").st_size
2c886dedd902 tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents: 19888
diff changeset
    25
  >>> if regsize < gdsize:
29485
6a98f9408a50 py3: make files use absolute_import and print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents: 27251
diff changeset
    26
  ...     print('generaldata increased size of manifest')
23381
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    27
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    28
Verify rev reordering doesnt create invalid bundles (issue4462)
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    29
This requires a commit tree that when pulled will reorder manifest revs such
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    30
that the second manifest to create a file rev will be ordered before the first
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    31
manifest to create that file rev. We also need to do a partial pull to ensure
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    32
reordering happens. At the end we verify the linkrev points at the earliest
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    33
commit.
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    34
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    35
  $ hg init server --config format.generaldelta=True
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    36
  $ cd server
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    37
  $ touch a
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    38
  $ hg commit -Aqm a
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    39
  $ echo x > x
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    40
  $ echo y > y
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    41
  $ hg commit -Aqm xy
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    42
  $ hg up -q '.^'
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    43
  $ echo x > x
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    44
  $ echo z > z
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    45
  $ hg commit -Aqm xz
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    46
  $ hg up -q 1
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    47
  $ echo b > b
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    48
  $ hg commit -Aqm b
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    49
  $ hg merge -q 2
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    50
  $ hg commit -Aqm merge
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    51
  $ echo c > c
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    52
  $ hg commit -Aqm c
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    53
  $ hg log -G -T '{rev} {shortest(node)} {desc}'
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    54
  @  5 ebb8 c
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    55
  |
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    56
  o    4 baf7 merge
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    57
  |\
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    58
  | o  3 a129 b
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    59
  | |
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    60
  o |  2 958c xz
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    61
  | |
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    62
  | o  1 f00c xy
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    63
  |/
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    64
  o  0 3903 a
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    65
  
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    66
  $ cd ..
26913
f43689badeff test: enforce non-generaldelta base repository in 'test-generaldelta'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26907
diff changeset
    67
  $ hg init client --config format.generaldelta=false --config format.usegeneraldelta=false
23381
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    68
  $ cd client
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    69
  $ hg pull -q ../server -r 4
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    70
  $ hg debugindex x
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    71
     rev    offset  length   base linkrev nodeid       p1           p2
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    72
       0         0       3      0       1 1406e7411862 000000000000 000000000000
cc0ff93d0c0c changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents: 19942
diff changeset
    73
26118
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
    74
  $ cd ..
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
    75
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    76
Test "usegeneraldelta" config
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    77
(repo are general delta, but incoming bundle are not re-deltified)
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    78
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    79
delta coming from the server base delta server are not recompressed.
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    80
(also include the aggressive version for comparison)
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    81
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    82
  $ hg clone repo --pull --config format.usegeneraldelta=1 usegd
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    83
  requesting all changes
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    84
  adding changesets
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    85
  adding manifests
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    86
  adding file changes
27190
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
    87
  added 4 changesets with 6 changes to 3 files (+2 heads)
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    88
  updating to branch default
27190
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
    89
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    90
  $ hg clone repo --pull --config format.generaldelta=1 full
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    91
  requesting all changes
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    92
  adding changesets
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    93
  adding manifests
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    94
  adding file changes
27190
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
    95
  added 4 changesets with 6 changes to 3 files (+2 heads)
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    96
  updating to branch default
27190
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
    97
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    98
  $ hg -R repo debugindex -m
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
    99
     rev    offset  length   base linkrev nodeid       p1           p2
27190
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   100
       0         0     104      0       0 cef96823c800 000000000000 000000000000
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   101
       1       104      57      0       1 58ab9a8d541d cef96823c800 000000000000
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   102
       2       161      57      0       2 134fdc6fd680 cef96823c800 000000000000
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   103
       3       218     104      3       3 723508934dad cef96823c800 000000000000
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   104
  $ hg -R usegd debugindex -m
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   105
     rev    offset  length  delta linkrev nodeid       p1           p2
27190
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   106
       0         0     104     -1       0 cef96823c800 000000000000 000000000000
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   107
       1       104      57      0       1 58ab9a8d541d cef96823c800 000000000000
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   108
       2       161      57      1       2 134fdc6fd680 cef96823c800 000000000000
27191
20a9226bdc8a addrevision: use general delta when the incoming base delta is bad
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 27190
diff changeset
   109
       3       218      57      0       3 723508934dad cef96823c800 000000000000
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   110
  $ hg -R full debugindex -m
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   111
     rev    offset  length  delta linkrev nodeid       p1           p2
27190
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   112
       0         0     104     -1       0 cef96823c800 000000000000 000000000000
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   113
       1       104      57      0       1 58ab9a8d541d cef96823c800 000000000000
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   114
       2       161      57      0       2 134fdc6fd680 cef96823c800 000000000000
762fbd28e7df test: use a bigger manifest in general delta test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26913
diff changeset
   115
       3       218      57      0       3 723508934dad cef96823c800 000000000000
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   116
26118
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   117
Test format.aggressivemergedeltas
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   118
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   119
  $ hg init --config format.generaldelta=1 aggressive
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   120
  $ cd aggressive
26907
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   121
  $ cat << EOF >> .hg/hgrc
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   122
  > [format]
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   123
  > generaldelta = 1
dfab6edb98e3 format: introduce 'format.usegeneraldelta`
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26866
diff changeset
   124
  > EOF
26118
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   125
  $ touch a b c d e
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   126
  $ hg commit -Aqm side1
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   127
  $ hg up -q null
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   128
  $ touch x y
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   129
  $ hg commit -Aqm side2
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   130
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   131
- Verify non-aggressive merge uses p1 (commit 1) as delta parent
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   132
  $ hg merge -q 0
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   133
  $ hg commit -q -m merge
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   134
  $ hg debugindex -m
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   135
     rev    offset  length  delta linkrev nodeid       p1           p2
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   136
       0         0      59     -1       0 8dde941edb6e 000000000000 000000000000
27251
d9bfe6289acf revlog: don't consider nullrev when choosing delta base
Martin von Zweigbergk <martinvonz@google.com>
parents: 27191
diff changeset
   137
       1        59      61      0       1 315c023f341d 000000000000 000000000000
d9bfe6289acf revlog: don't consider nullrev when choosing delta base
Martin von Zweigbergk <martinvonz@google.com>
parents: 27191
diff changeset
   138
       2       120      65      1       2 2ab389a983eb 315c023f341d 8dde941edb6e
26118
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   139
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   140
  $ hg strip -q -r . --config extensions.strip=
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   141
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   142
- Verify aggressive merge uses p2 (commit 0) as delta parent
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   143
  $ hg up -q -C 1
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   144
  $ hg merge -q 0
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   145
  $ hg commit -q -m merge --config format.aggressivemergedeltas=True
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   146
  $ hg debugindex -m
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   147
     rev    offset  length  delta linkrev nodeid       p1           p2
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   148
       0         0      59     -1       0 8dde941edb6e 000000000000 000000000000
27251
d9bfe6289acf revlog: don't consider nullrev when choosing delta base
Martin von Zweigbergk <martinvonz@google.com>
parents: 27191
diff changeset
   149
       1        59      61      0       1 315c023f341d 000000000000 000000000000
d9bfe6289acf revlog: don't consider nullrev when choosing delta base
Martin von Zweigbergk <martinvonz@google.com>
parents: 27191
diff changeset
   150
       2       120      62      0       2 2ab389a983eb 315c023f341d 8dde941edb6e
26118
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   151
26423
c93f91c1db1c strip: use bundle2 + cg2 by default when repository use general delta
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26118
diff changeset
   152
Test that strip bundle use bundle2
c93f91c1db1c strip: use bundle2 + cg2 by default when repository use general delta
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26118
diff changeset
   153
  $ hg --config extensions.strip= strip .
c93f91c1db1c strip: use bundle2 + cg2 by default when repository use general delta
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26118
diff changeset
   154
  0 files updated, 0 files merged, 5 files removed, 0 files unresolved
c93f91c1db1c strip: use bundle2 + cg2 by default when repository use general delta
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26118
diff changeset
   155
  saved backup bundle to $TESTTMP/aggressive/.hg/strip-backup/1c5d4dc9a8b8-6c68e60c-backup.hg (glob)
c93f91c1db1c strip: use bundle2 + cg2 by default when repository use general delta
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26118
diff changeset
   156
  $ hg debugbundle .hg/strip-backup/*
29592
37cccad55410 util: implement a deterministic __repr__ on sortdict
Gregory Szorc <gregory.szorc@gmail.com>
parents: 29485
diff changeset
   157
  Stream params: sortdict([('Compression', 'BZ')])
29593
953839de96ab bundle2: store changeset count when creating file bundles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 29592
diff changeset
   158
  changegroup -- "sortdict([('version', '02'), ('nbchanges', '1')])"
26423
c93f91c1db1c strip: use bundle2 + cg2 by default when repository use general delta
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26118
diff changeset
   159
      1c5d4dc9a8b8d6e1750966d343e94db665e7a1e9
c93f91c1db1c strip: use bundle2 + cg2 by default when repository use general delta
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26118
diff changeset
   160
26118
049005de325e revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents: 23381
diff changeset
   161
  $ cd ..