tests/test-issue6528.t
author Raphaël Gomès <rgomes@octobus.net>
Tue, 27 Jul 2021 21:45:27 +0200
branchstable
changeset 47815 b30a53ffbf9b
parent 47504 411dc27fd9fd
child 47817 855463b5fe49
permissions -rw-r--r--
debugcommands: introduce a debug command to repair repos affected by issue6528 This command is quite basic and slow, it will loop over the entirety of the filelogs in the repository and check each revision for corruption, then fixes the affected filelogs. It takes under 25 minutes for Mozilla-Central on my not-top-of-the-line laptop, using the `--to-report` and `--from-report` options will make this pretty tolerable to use, I think. This change also introduces a test for the fix. Differential Revision: https://phab.mercurial-scm.org/D11239
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47503
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
===============================================================
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
Test non-regression on the corruption associated with issue6528
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
===============================================================
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
Setup
47815
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
     6
=====
47503
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
  $ hg init base-repo
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
  $ cd base-repo
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    10
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    11
  $ cat <<EOF > a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    12
  > 1
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
  > 2
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
  > 3
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
  > 4
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
  > 5
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    17
  > 6
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    18
  > EOF
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    19
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    20
  $ hg add a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    21
  $ hg commit -m 'c_base_c - create a.txt'
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    22
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    23
Modify a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    24
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    25
  $ sed -e 's/1/foo/' a.txt > a.tmp; mv a.tmp a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    26
  $ hg commit -m 'c_modify_c - modify a.txt'
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    27
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    28
Modify and rename a.txt to b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    29
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
  $ hg up -r "desc('c_base_c')"
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
  $ sed -e 's/6/bar/' a.txt > a.tmp; mv a.tmp a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
  $ hg mv a.txt b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
  $ hg commit -m 'c_rename_c - rename and modify a.txt to b.txt'
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
  created new head
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
Merge each branch
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
  $ hg merge -r "desc('c_modify_c')"
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
  merging b.txt and a.txt to b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
  (branch merge, don't forget to commit)
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
  $ hg commit -m 'c_merge_c: commit merge'
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    44
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    45
  $ hg debugrevlogindex b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    46
     rev linkrev nodeid       p1           p2
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    47
       0       2 05b806ebe5ea 000000000000 000000000000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    48
       1       3 a58b36ad6b65 000000000000 05b806ebe5ea
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    49
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    50
Check commit Graph
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    51
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    52
  $ hg log -G
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    53
  @    changeset:   3:a1cc2bdca0aa
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    54
  |\   tag:         tip
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    55
  | |  parent:      2:615c6ccefd15
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    56
  | |  parent:      1:373d507f4667
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    57
  | |  user:        test
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    58
  | |  date:        Thu Jan 01 00:00:00 1970 +0000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    59
  | |  summary:     c_merge_c: commit merge
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    60
  | |
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
  | o  changeset:   2:615c6ccefd15
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
  | |  parent:      0:f5a5a568022f
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    63
  | |  user:        test
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
  | |  date:        Thu Jan 01 00:00:00 1970 +0000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
  | |  summary:     c_rename_c - rename and modify a.txt to b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
  | |
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
  o |  changeset:   1:373d507f4667
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
  |/   user:        test
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    69
  |    date:        Thu Jan 01 00:00:00 1970 +0000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
  |    summary:     c_modify_c - modify a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
  |
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
  o  changeset:   0:f5a5a568022f
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    73
     user:        test
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
     date:        Thu Jan 01 00:00:00 1970 +0000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    75
     summary:     c_base_c - create a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
  
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    77
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    78
  $ hg cat -r . b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    79
  foo
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    80
  2
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    81
  3
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
  4
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
  5
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    84
  bar
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    85
  $ cat b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    86
  foo
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    87
  2
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
  3
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    89
  4
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    90
  5
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    91
  bar
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    92
  $ cd ..
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    93
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    95
Check the lack of corruption
47815
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
    96
============================
47503
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    97
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    98
  $ hg clone --pull base-repo cloned
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    99
  requesting all changes
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   100
  adding changesets
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   101
  adding manifests
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   102
  adding file changes
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   103
  added 4 changesets with 4 changes to 2 files
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   104
  new changesets f5a5a568022f:a1cc2bdca0aa
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   105
  updating to branch default
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   106
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   107
  $ cd cloned
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   108
  $ hg up -r "desc('c_merge_c')"
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   109
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   110
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   111
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   112
Status is buggy, even with debugrebuilddirstate
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   113
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   114
  $ hg cat -r . b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   115
  foo
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   116
  2
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   117
  3
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   118
  4
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   119
  5
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   120
  bar
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   121
  $ cat b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   122
  foo
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   123
  2
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   124
  3
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   125
  4
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   126
  5
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   127
  bar
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   128
  $ hg status
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   129
  $ hg debugrebuilddirstate
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   130
  $ hg status
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   131
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   132
the history was altered
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   133
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   134
in theory p1/p2 order does not matter but in practice p1 == nullid is used as a
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   135
marker that some metadata are present and should be fetched.
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   136
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   137
  $ hg debugrevlogindex b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   138
     rev linkrev nodeid       p1           p2
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   139
       0       2 05b806ebe5ea 000000000000 000000000000
47504
411dc27fd9fd corruption: backout changeset 49fd21f32695 (issue6528)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 47503
diff changeset
   140
       1       3 a58b36ad6b65 000000000000 05b806ebe5ea
47503
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   141
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   142
Check commit Graph
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   143
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   144
  $ hg log -G
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   145
  @    changeset:   3:a1cc2bdca0aa
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   146
  |\   tag:         tip
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   147
  | |  parent:      2:615c6ccefd15
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   148
  | |  parent:      1:373d507f4667
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   149
  | |  user:        test
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   150
  | |  date:        Thu Jan 01 00:00:00 1970 +0000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   151
  | |  summary:     c_merge_c: commit merge
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   152
  | |
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   153
  | o  changeset:   2:615c6ccefd15
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   154
  | |  parent:      0:f5a5a568022f
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   155
  | |  user:        test
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   156
  | |  date:        Thu Jan 01 00:00:00 1970 +0000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   157
  | |  summary:     c_rename_c - rename and modify a.txt to b.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   158
  | |
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   159
  o |  changeset:   1:373d507f4667
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   160
  |/   user:        test
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   161
  |    date:        Thu Jan 01 00:00:00 1970 +0000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   162
  |    summary:     c_modify_c - modify a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   163
  |
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   164
  o  changeset:   0:f5a5a568022f
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   165
     user:        test
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   166
     date:        Thu Jan 01 00:00:00 1970 +0000
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   167
     summary:     c_base_c - create a.txt
bd0a2a919bf8 corruption: add a test for issue6528
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   168
  
47815
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   169
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   170
Test the command that fixes the issue
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   171
=====================================
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   172
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   173
Restore a broken repository with multiple broken revisions and a filename that
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   174
would get encoded to test the `report` options.
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   175
It's a tarball because unbundle might magically fix the issue later.
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   176
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   177
  $ cd ..
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   178
  $ mkdir repo-to-fix
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   179
  $ cd repo-to-fix
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   180
#if windows
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   181
tar interprets `:` in paths (like `C:`) as being remote, force local on Windows
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   182
only since some versions of tar don't have this flag.
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   183
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   184
  $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   185
#else
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   186
  $ tar xf $TESTDIR/bundles/issue6528.tar
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   187
#endif
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   188
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   189
Check that the issue is present
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   190
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   191
  M D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   192
  M b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   193
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   194
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   195
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   196
       1       3 a58b36ad6b65 05b806ebe5ea 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   197
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   198
       3       7 ea4f2f2463cc 216a5fe8b8ed 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   199
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   200
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   201
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   202
       1       7 2a80419dfc31 2a8d3833f2fb 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   203
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   204
Dry-run the fix
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   205
  $ hg debug-repair-issue6528 --dry-run
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   206
  found affected revision 1 for filelog 'data/D.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   207
  found affected revision 1 for filelog 'data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   208
  found affected revision 3 for filelog 'data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   209
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   210
  M D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   211
  M b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   212
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   213
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   214
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   215
       1       3 a58b36ad6b65 05b806ebe5ea 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   216
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   217
       3       7 ea4f2f2463cc 216a5fe8b8ed 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   218
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   219
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   220
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   221
       1       7 2a80419dfc31 2a8d3833f2fb 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   222
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   223
Run the fix
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   224
  $ hg debug-repair-issue6528
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   225
  found affected revision 1 for filelog 'data/D.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   226
  repaired revision 1 of 'filelog data/D.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   227
  found affected revision 1 for filelog 'data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   228
  found affected revision 3 for filelog 'data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   229
  repaired revision 1 of 'filelog data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   230
  repaired revision 3 of 'filelog data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   231
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   232
Check that the fix worked and that running it twice does nothing
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   233
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   234
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   235
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   236
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   237
       1       3 a58b36ad6b65 000000000000 05b806ebe5ea
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   238
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   239
       3       7 ea4f2f2463cc 000000000000 216a5fe8b8ed
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   240
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   241
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   242
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   243
       1       7 2a80419dfc31 000000000000 2a8d3833f2fb
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   244
  $ hg debug-repair-issue6528
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   245
  no affected revisions were found
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   246
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   247
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   248
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   249
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   250
       1       3 a58b36ad6b65 000000000000 05b806ebe5ea
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   251
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   252
       3       7 ea4f2f2463cc 000000000000 216a5fe8b8ed
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   253
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   254
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   255
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   256
       1       7 2a80419dfc31 000000000000 2a8d3833f2fb
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   257
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   258
Try the using the report options
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   259
--------------------------------
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   260
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   261
  $ cd ..
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   262
  $ mkdir repo-to-fix-report
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   263
  $ cd repo-to-fix
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   264
#if windows
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   265
tar interprets `:` in paths (like `C:`) as being remote, force local on Windows
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   266
only since some versions of tar don't have this flag.
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   267
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   268
  $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   269
#else
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   270
  $ tar xf $TESTDIR/bundles/issue6528.tar
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   271
#endif
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   272
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   273
  $ hg debug-repair-issue6528 --to-report $TESTTMP/report.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   274
  found affected revision 1 for filelog 'data/D.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   275
  found affected revision 1 for filelog 'data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   276
  found affected revision 3 for filelog 'data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   277
  $ cat $TESTTMP/report.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   278
  2a80419dfc31d7dfb308ac40f3f138282de7d73b D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   279
  a58b36ad6b6545195952793099613c2116f3563b,ea4f2f2463cca5b29ddf3461012b8ce5c6dac175 b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   280
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   281
  $ hg debug-repair-issue6528 --from-report $TESTTMP/report.txt --dry-run
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   282
  loading report file '$TESTTMP/report.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   283
  found affected revision 1 for filelog 'D.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   284
  found affected revision 1 for filelog 'b.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   285
  found affected revision 3 for filelog 'b.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   286
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   287
  M D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   288
  M b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   289
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   290
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   291
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   292
       1       3 a58b36ad6b65 05b806ebe5ea 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   293
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   294
       3       7 ea4f2f2463cc 216a5fe8b8ed 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   295
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   296
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   297
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   298
       1       7 2a80419dfc31 2a8d3833f2fb 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   299
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   300
  $ hg debug-repair-issue6528 --from-report $TESTTMP/report.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   301
  loading report file '$TESTTMP/report.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   302
  found affected revision 1 for filelog 'D.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   303
  repaired revision 1 of 'filelog data/D.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   304
  found affected revision 1 for filelog 'b.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   305
  found affected revision 3 for filelog 'b.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   306
  repaired revision 1 of 'filelog data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   307
  repaired revision 3 of 'filelog data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   308
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   309
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   310
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   311
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   312
       1       3 a58b36ad6b65 000000000000 05b806ebe5ea
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   313
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   314
       3       7 ea4f2f2463cc 000000000000 216a5fe8b8ed
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   315
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   316
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   317
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   318
       1       7 2a80419dfc31 000000000000 2a8d3833f2fb
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   319
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   320
Check that the revision is not "fixed" again
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   321
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   322
  $ hg debug-repair-issue6528 --from-report $TESTTMP/report.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   323
  loading report file '$TESTTMP/report.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   324
  revision 2a80419dfc31d7dfb308ac40f3f138282de7d73b of file 'D.txt' is not affected
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   325
  no affected revisions were found for 'D.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   326
  revision a58b36ad6b6545195952793099613c2116f3563b of file 'b.txt' is not affected
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   327
  revision ea4f2f2463cca5b29ddf3461012b8ce5c6dac175 of file 'b.txt' is not affected
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   328
  no affected revisions were found for 'b.txt'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   329
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   330
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   331
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   332
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   333
       1       3 a58b36ad6b65 000000000000 05b806ebe5ea
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   334
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   335
       3       7 ea4f2f2463cc 000000000000 216a5fe8b8ed
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   336
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   337
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   338
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   339
       1       7 2a80419dfc31 000000000000 2a8d3833f2fb
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   340
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   341
Try it with a non-inline revlog
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   342
-------------------------------
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   343
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   344
  $ cd ..
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   345
  $ mkdir $TESTTMP/ext
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   346
  $ cat << EOF > $TESTTMP/ext/small_inline.py
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   347
  > from mercurial import revlog
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   348
  > revlog._maxinline = 8
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   349
  > EOF
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   350
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   351
  $ cat << EOF >> $HGRCPATH
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   352
  > [extensions]
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   353
  > small_inline=$TESTTMP/ext/small_inline.py
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   354
  > EOF
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   355
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   356
  $ mkdir repo-to-fix-not-inline
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   357
  $ cd repo-to-fix-not-inline
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   358
#if windows
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   359
tar interprets `:` in paths (like `C:`) as being remote, force local on Windows
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   360
only since some versions of tar don't have this flag.
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   361
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   362
  $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   363
#else
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   364
  $ tar xf $TESTDIR/bundles/issue6528.tar
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   365
#endif
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   366
  $ echo b >> b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   367
  $ hg commit -qm "inline -> separate"
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   368
  $ find .hg -name *b.txt.d
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   369
  .hg/store/data/b.txt.d
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   370
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   371
Status is correct, but the problem is still there, in the earlier revision
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   372
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   373
  $ hg up 3
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   374
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   375
  $ hg st
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   376
  M b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   377
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   378
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   379
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   380
       1       3 a58b36ad6b65 05b806ebe5ea 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   381
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   382
       3       7 ea4f2f2463cc 216a5fe8b8ed 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   383
       4       8 db234885e2fe ea4f2f2463cc 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   384
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   385
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   386
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   387
       1       7 2a80419dfc31 2a8d3833f2fb 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   388
       2       8 65aecc89bb5d 2a80419dfc31 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   389
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   390
Run the fix on the non-inline revlog
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   391
  $ hg debug-repair-issue6528
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   392
  found affected revision 1 for filelog 'data/D.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   393
  repaired revision 1 of 'filelog data/D.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   394
  found affected revision 1 for filelog 'data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   395
  found affected revision 3 for filelog 'data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   396
  repaired revision 1 of 'filelog data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   397
  repaired revision 3 of 'filelog data/b.txt.i'
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   398
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   399
Check that it worked
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   400
  $ hg debugrevlogindex b.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   401
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   402
       0       2 05b806ebe5ea 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   403
       1       3 a58b36ad6b65 000000000000 05b806ebe5ea
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   404
       2       6 216a5fe8b8ed 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   405
       3       7 ea4f2f2463cc 000000000000 216a5fe8b8ed
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   406
       4       8 db234885e2fe ea4f2f2463cc 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   407
  $ hg debugrevlogindex D.txt
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   408
     rev linkrev nodeid       p1           p2
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   409
       0       6 2a8d3833f2fb 000000000000 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   410
       1       7 2a80419dfc31 000000000000 2a8d3833f2fb
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   411
       2       8 65aecc89bb5d 2a80419dfc31 000000000000
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   412
  $ hg debug-repair-issue6528
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   413
  no affected revisions were found
b30a53ffbf9b debugcommands: introduce a debug command to repair repos affected by issue6528
Raphaël Gomès <rgomes@octobus.net>
parents: 47504
diff changeset
   414
  $ hg st