tests/test-generaldelta.t
author Kostia Balytskyi <ikostia@fb.com>
Thu, 14 Jul 2016 03:12:09 -0700
changeset 29552 db26925bdbb0
parent 29485 6a98f9408a50
child 29592 37cccad55410
permissions -rw-r--r--
rebase: remove sortedstate-related confusion The following rebase implementation details are frustrating: - storing a list of sorted revision numbers in a field named sortedstate - having sortedstate be a field of the rebaseruntime class - using sortedstate[-1] as opposed to a more intuitive max(self.state) to compute the latest revision in the state This commit fixes those imperfections.
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/*
26425
eb21b6679dc6 strip: compress bundle2 backup using BZ
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   157
  Stream params: {'Compression': 'BZ'}
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
   158
  changegroup -- "{'version': '02'}"
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 ..