tests/test-strip-cross.t
author Raphaël Gomès <rgomes@octobus.net>
Tue, 05 Apr 2022 10:55:28 +0200
branchstable
changeset 49000 dd6b67d5c256
parent 42913 a8b249b2f8cc
child 49251 ccd76e292be5
permissions -rw-r--r--
rust: fix unsound `OwningDirstateMap` As per the previous patch, `OwningDirstateMap` is unsound. Self-referential structs are difficult to implement correctly in Rust since the compiler is free to move structs around as much as it wants to. They are also very rarely needed in practice, so the state-of-the-art on how they should be done within the Rust rules is still a bit new. The crate `ouroboros` is an attempt at providing a safe way (in the Rust sense) of declaring self-referential structs. It is getting a lot attention and was improved very quickly when soundness issues were found in the past: rather than relying on our own (limited) review circle, we might as well use the de-facto common crate to fix this problem. This will give us a much better chance of finding issues should any new ones be discovered as well as the benefit of fewer `unsafe` APIs of our own. I was starting to think about how I would present a safe API to the old struct but soon realized that the callback-based approach was already done in `ouroboros`, along with a lot more care towards refusing incorrect structs. In short: we don't return a mutable reference to the `DirstateMap` anymore, we expect users of its API to pass a `FnOnce` that takes the map as an argument. This allows our `OwningDirstateMap` to control the input and output lifetimes of the code that modifies it to prevent such issues. Changing to `ouroboros` meant changing every API with it, but it is relatively low churn in the end. It correctly identified the example buggy modification of `copy_map_insert` outlined in the previous patch as violating the borrow rules. Differential Revision: https://phab.mercurial-scm.org/D12429
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
     1
test stripping of filelogs where the linkrev doesn't always increase
5909
f45f7390c1c5 strip: calculate list of extra nodes to save and pass it to changegroupsubset
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     2
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
     3
  $ echo '[extensions]' >> $HGRCPATH
20117
aa9385f983fa tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents: 20115
diff changeset
     4
  $ echo 'strip =' >> $HGRCPATH
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
     5
  $ commit()
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
     6
  > {
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
     7
  >     hg up -qC null
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
     8
  >     count=1
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
     9
  >     for i in "$@"; do
12537
5df8ef0f3f51 tests: fix tabs/indentation in test-strip-cross.t
Adrian Buehlmann <adrian@cadifra.com>
parents: 12492
diff changeset
    10
  >         for f in $i; do
42911
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
    11
  >             mkdir -p `dirname $f`
12537
5df8ef0f3f51 tests: fix tabs/indentation in test-strip-cross.t
Adrian Buehlmann <adrian@cadifra.com>
parents: 12492
diff changeset
    12
  >             echo $count > $f
5df8ef0f3f51 tests: fix tabs/indentation in test-strip-cross.t
Adrian Buehlmann <adrian@cadifra.com>
parents: 12492
diff changeset
    13
  >         done
5df8ef0f3f51 tests: fix tabs/indentation in test-strip-cross.t
Adrian Buehlmann <adrian@cadifra.com>
parents: 12492
diff changeset
    14
  >         count=`expr $count + 1`
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    15
  >     done
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    16
  >     hg commit -qAm "$*"
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    17
  > }
5909
f45f7390c1c5 strip: calculate list of extra nodes to save and pass it to changegroupsubset
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    18
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    19
2 1 0 2 0 1 2
5909
f45f7390c1c5 strip: calculate list of extra nodes to save and pass it to changegroupsubset
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    20
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    21
  $ mkdir files
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    22
  $ cd files
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    23
  $ hg init orig
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    24
  $ cd orig
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    25
  $ commit '201 210'
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    26
  $ commit '102 120' '210'
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    27
  $ commit '021'
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    28
  $ commit '201' '021 120'
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    29
  $ commit '012 021' '102 201' '120 210'
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    30
  $ commit '102 120' '012 210' '021 201'
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    31
  $ commit '201 210' '021 120' '012 102'
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    32
  $ cd ..
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    33
  $ hg clone -q -U -r 4 -r 5 -r 6 orig crossed
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    34
  $ cd crossed
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    35
42909
32fdbc952bdd tests: don't log manifest-file in test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42908
diff changeset
    36
  $ for i in 012 021 102 120 201 210; do
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    37
  >     echo $i
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    38
  >     hg debugindex $i
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    39
  >     echo
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    40
  > done
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    41
  012
37283
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    42
     rev linkrev nodeid       p1           p2
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    43
       0       0 b8e02f643373 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    44
       1       1 5d9299349fc0 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    45
       2       2 2661d26c6496 000000000000 000000000000
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    46
  
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    47
  021
37283
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    48
     rev linkrev nodeid       p1           p2
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    49
       0       0 b8e02f643373 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    50
       1       2 5d9299349fc0 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    51
       2       1 2661d26c6496 000000000000 000000000000
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    52
  
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    53
  102
37283
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    54
     rev linkrev nodeid       p1           p2
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    55
       0       1 b8e02f643373 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    56
       1       0 5d9299349fc0 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    57
       2       2 2661d26c6496 000000000000 000000000000
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    58
  
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    59
  120
37283
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    60
     rev linkrev nodeid       p1           p2
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    61
       0       1 b8e02f643373 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    62
       1       2 5d9299349fc0 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    63
       2       0 2661d26c6496 000000000000 000000000000
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    64
  
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    65
  201
37283
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    66
     rev linkrev nodeid       p1           p2
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    67
       0       2 b8e02f643373 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    68
       1       0 5d9299349fc0 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    69
       2       1 2661d26c6496 000000000000 000000000000
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    70
  
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    71
  210
37283
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    72
     rev linkrev nodeid       p1           p2
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    73
       0       2 b8e02f643373 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    74
       1       1 5d9299349fc0 000000000000 000000000000
d4e62df1c73d debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37282
diff changeset
    75
       2       0 2661d26c6496 000000000000 000000000000
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    76
  
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 12640
diff changeset
    77
  $ cd ..
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    78
  $ for i in 0 1 2; do
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    79
  >     hg clone -q -U --pull crossed $i
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    80
  >     echo "% Trying to strip revision $i"
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12537
diff changeset
    81
  >     hg --cwd $i strip $i
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    82
  >     echo "% Verifying"
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    83
  >     hg --cwd $i verify
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    84
  >     echo
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    85
  > done
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    86
  % Trying to strip revision 0
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    87
  saved backup bundle to $TESTTMP/files/0/.hg/strip-backup/cbb8c2f0a2e3-239800b9-backup.hg
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    88
  % Verifying
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    89
  checking changesets
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    90
  checking manifests
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    91
  crosschecking files in changesets and manifests
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    92
  checking files
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    93
  checked 2 changesets with 12 changes to 6 files
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    94
  
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
    95
  % Trying to strip revision 1
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    96
  saved backup bundle to $TESTTMP/files/1/.hg/strip-backup/124ecc0cbec9-6104543f-backup.hg
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    97
  % Verifying
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    98
  checking changesets
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
    99
  checking manifests
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   100
  crosschecking files in changesets and manifests
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   101
  checking files
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   102
  checked 2 changesets with 12 changes to 6 files
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   103
  
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   104
  % Trying to strip revision 2
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   105
  saved backup bundle to $TESTTMP/files/2/.hg/strip-backup/f6439b304a1a-c6505a5f-backup.hg
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   106
  % Verifying
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   107
  checking changesets
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   108
  checking manifests
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   109
  crosschecking files in changesets and manifests
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   110
  checking files
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   111
  checked 2 changesets with 12 changes to 6 files
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   112
  
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   113
  $ cd ..
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   114
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   115
Do a similar test where the manifest revlog has unordered linkrevs
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   116
  $ mkdir manifests
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   117
  $ cd manifests
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   118
  $ hg init orig
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   119
  $ cd orig
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   120
  $ commit 'file'
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   121
  $ commit 'other'
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   122
  $ commit '' 'other'
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   123
  $ HGUSER=another-user; export HGUSER
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   124
  $ commit 'file'
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   125
  $ commit 'other' 'file'
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   126
  $ cd ..
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   127
  $ hg clone -q -U -r 1 -r 2 -r 3 -r 4 orig crossed
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   128
  $ cd crossed
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   129
  $ hg debugindex --manifest
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   130
     rev linkrev nodeid       p1           p2
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   131
       0       2 6bbc6fee55c2 000000000000 000000000000
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   132
       1       0 1c556153fe54 000000000000 000000000000
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   133
       2       1 1f76dba919fd 000000000000 000000000000
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   134
       3       3 bbee06ad59d5 000000000000 000000000000
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   135
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   136
  $ cd ..
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   137
  $ for i in 2 3; do
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   138
  >     hg clone -q -U --pull crossed $i
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   139
  >     echo "% Trying to strip revision $i"
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   140
  >     hg --cwd $i strip $i
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   141
  >     echo "% Verifying"
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   142
  >     hg --cwd $i verify
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   143
  >     echo
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   144
  > done
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   145
  % Trying to strip revision 2
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   146
  saved backup bundle to $TESTTMP/manifests/2/.hg/strip-backup/f3015ad03c03-4d98bdc2-backup.hg
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   147
  % Verifying
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   148
  checking changesets
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   149
  checking manifests
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   150
  crosschecking files in changesets and manifests
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   151
  checking files
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   152
  checked 3 changesets with 3 changes to 2 files
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   153
  
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   154
  % Trying to strip revision 3
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   155
  saved backup bundle to $TESTTMP/manifests/3/.hg/strip-backup/9632aa303aa4-69192e3f-backup.hg
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   156
  % Verifying
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   157
  checking changesets
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   158
  checking manifests
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   159
  crosschecking files in changesets and manifests
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   160
  checking files
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   161
  checked 3 changesets with 3 changes to 2 files
12492
72be1ab55d62 tests: unify test-strip-cross
Matt Mackall <mpm@selenic.com>
parents: 11208
diff changeset
   162
  
42910
5e0b1ce2f4a2 tests: split out manifest case from test-strip-cross.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 42909
diff changeset
   163
  $ cd ..
42911
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   164
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   165
Now a similar test for a non-root manifest revlog
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   166
  $ cat >> $HGRCPATH <<EOF
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   167
  > [experimental]
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   168
  > treemanifests = yes
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   169
  > EOF
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   170
  $ mkdir treemanifests
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   171
  $ cd treemanifests
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   172
  $ 
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   173
  $ hg --config experimental.treemanifest=True init orig
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   174
  $ cd orig
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   175
  $ commit 'dir/file'
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   176
  $ commit 'dir/other'
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   177
  $ commit '' 'dir/other'
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   178
  $ HGUSER=yet-another-user; export HGUSER
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   179
  $ commit 'otherdir dir/file'
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   180
  $ commit 'otherdir dir/other' 'otherdir dir/file'
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   181
  $ cd ..
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   182
  $ hg --config experimental.treemanifest=True clone -q -U -r 1 -r 2 -r 3 -r 4 orig crossed
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   183
  $ cd crossed
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   184
  $ hg debugindex --dir dir
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   185
     rev linkrev nodeid       p1           p2
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   186
       0       2 6bbc6fee55c2 000000000000 000000000000
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   187
       1       0 1c556153fe54 000000000000 000000000000
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   188
       2       1 1f76dba919fd 000000000000 000000000000
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   189
       3       3 bbee06ad59d5 000000000000 000000000000
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   190
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   191
  $ cd ..
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   192
  $ for i in 2 3; do
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   193
  >     hg --config experimental.treemanifest=True clone -q -U --pull crossed $i
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   194
  >     echo "% Trying to strip revision $i"
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   195
  >     hg --cwd $i strip $i
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   196
  >     echo "% Verifying"
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   197
  >     hg --cwd $i verify
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   198
  >     echo
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   199
  > done
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   200
  % Trying to strip revision 2
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   201
  saved backup bundle to $TESTTMP/treemanifests/2/.hg/strip-backup/145f5c75f9ac-a105cfbe-backup.hg
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   202
  % Verifying
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   203
  checking changesets
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   204
  checking manifests
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   205
  checking directory manifests
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   206
  crosschecking files in changesets and manifests
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   207
  checking files
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   208
  checked 3 changesets with 4 changes to 3 files
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   209
  
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   210
  % Trying to strip revision 3
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   211
  saved backup bundle to $TESTTMP/treemanifests/3/.hg/strip-backup/e4e3de5c3cb2-f4c70376-backup.hg
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   212
  % Verifying
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   213
  checking changesets
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   214
  checking manifests
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   215
  checking directory manifests
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   216
  crosschecking files in changesets and manifests
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   217
  checking files
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   218
  checked 3 changesets with 4 changes to 3 files
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   219
  
31dcd9b8ef40 tests: show broken strip with treemanifests and unordered linkrevs
Martin von Zweigbergk <martinvonz@google.com>
parents: 42910
diff changeset
   220
  $ cd ..