tests/test-rebase-obsolete.t
author Yuya Nishihara <yuya@tcha.org>
Mon, 19 Mar 2018 22:10:40 +0900
changeset 37015 a318bb154d42
parent 35995 b7e2cf114e85
child 37787 92213f6745ed
permissions -rw-r--r--
templatefuncs: do not stringify result of if*() expression Returning a generator means that the result is a byte string. I can't find any reason to make the "if" condition lazy since it is evaluated anyway when {if()} has to be evaluated. So let's simply make if*() return an input expression unmodified.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     1
==========================
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     2
Test rebase with obsolete
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     3
==========================
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     4
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     5
Enable obsolete
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     6
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     7
  $ cat >> $HGRCPATH << EOF
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     8
  > [ui]
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
     9
  > logtemplate= {rev}:{node|short} {desc|firstline}{if(obsolete,' ({obsfate})')}
22955
fab9dda0f2a3 obsolete: update tests to use obsolete options
Durham Goode <durham@fb.com>
parents: 22260
diff changeset
    10
  > [experimental]
34866
1644623ab096 config: use 'experimental.evolution.create-markers'
Boris Feld <boris.feld@octobus.net>
parents: 34865
diff changeset
    11
  > evolution.createmarkers=True
34867
7f183c643eb6 config: use 'experimental.evolution.allowunstable'
Boris Feld <boris.feld@octobus.net>
parents: 34866
diff changeset
    12
  > evolution.allowunstable=True
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    13
  > [phases]
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    14
  > publish=False
27011
53c668dc6b16 rebase: fix a typo in test-rebase-obsolete
Laurent Charignon <lcharignon@fb.com>
parents: 26902
diff changeset
    15
  > [extensions]
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    16
  > rebase=
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
    17
  > drawdag=$TESTDIR/drawdag.py
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    18
  > EOF
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    19
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    20
Setup rebase canonical repo
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    21
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    22
  $ hg init base
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    23
  $ cd base
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    24
  $ hg unbundle "$TESTDIR/bundles/rebase.hg"
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    25
  adding changesets
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    26
  adding manifests
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    27
  adding file changes
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    28
  added 8 changesets with 7 changes to 7 files (+2 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 34290
diff changeset
    29
  new changesets cd010b8cd998:02de42196ebe
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    30
  (run 'hg heads' to see heads, 'hg merge' to merge)
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    31
  $ hg up tip
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    32
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    33
  $ hg log -G
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    34
  @  7:02de42196ebe H
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    35
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    36
  | o  6:eea13746799a G
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    37
  |/|
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    38
  o |  5:24b6387c8c8c F
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    39
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    40
  | o  4:9520eea781bc E
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    41
  |/
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    42
  | o  3:32af7686d403 D
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    43
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    44
  | o  2:5fddd98957c8 C
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    45
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    46
  | o  1:42ccdea3bb16 B
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    47
  |/
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    48
  o  0:cd010b8cd998 A
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    49
  
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    50
  $ cd ..
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    51
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    52
simple rebase
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    53
---------------------------------
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    54
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    55
  $ hg clone base simple
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    56
  updating to branch default
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    57
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    58
  $ cd simple
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    59
  $ hg up 32af7686d403
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    60
  3 files updated, 0 files merged, 2 files removed, 0 files unresolved
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    61
  $ hg rebase -d eea13746799a
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
    62
  rebasing 1:42ccdea3bb16 "B"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
    63
  rebasing 2:5fddd98957c8 "C"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
    64
  rebasing 3:32af7686d403 "D"
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    65
  $ hg log -G
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    66
  @  10:8eeb3c33ad33 D
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    67
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    68
  o  9:2327fea05063 C
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    69
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    70
  o  8:e4e5be0395b2 B
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    71
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    72
  | o  7:02de42196ebe H
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    73
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    74
  o |  6:eea13746799a G
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    75
  |\|
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    76
  | o  5:24b6387c8c8c F
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    77
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    78
  o |  4:9520eea781bc E
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    79
  |/
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    80
  o  0:cd010b8cd998 A
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    81
  
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    82
  $ hg log --hidden -G
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    83
  @  10:8eeb3c33ad33 D
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    84
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    85
  o  9:2327fea05063 C
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    86
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    87
  o  8:e4e5be0395b2 B
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    88
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    89
  | o  7:02de42196ebe H
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    90
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    91
  o |  6:eea13746799a G
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    92
  |\|
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    93
  | o  5:24b6387c8c8c F
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    94
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    95
  o |  4:9520eea781bc E
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    96
  |/
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
    97
  | x  3:32af7686d403 D (rewritten using rebase as 10:8eeb3c33ad33)
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    98
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
    99
  | x  2:5fddd98957c8 C (rewritten using rebase as 9:2327fea05063)
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   100
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   101
  | x  1:42ccdea3bb16 B (rewritten using rebase as 8:e4e5be0395b2)
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   102
  |/
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   103
  o  0:cd010b8cd998 A
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   104
  
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   105
  $ hg debugobsolete
34961
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   106
  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 e4e5be0395b2cbd471ed22a26b1b6a1a0658a794 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   107
  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 2327fea05063f39961b14cb69435a9898dc9a245 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   108
  32af7686d403cf45b5d95f2d70cebea587ac806a 8eeb3c33ad33d452c89e5dcf611c347f978fb42b 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   109
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   110
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   111
  $ cd ..
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   112
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   113
empty changeset
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   114
---------------------------------
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   115
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   116
  $ hg clone base empty
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   117
  updating to branch default
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   118
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   119
  $ cd empty
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   120
  $ hg up eea13746799a
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   121
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   122
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   123
We make a copy of both the first changeset in the rebased and some other in the
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   124
set.
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   125
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   126
  $ hg graft 42ccdea3bb16 32af7686d403
23505
bd5dbb8a05c8 graft: show more useful status information while grafting
Mads Kiilerich <madski@unity3d.com>
parents: 22955
diff changeset
   127
  grafting 1:42ccdea3bb16 "B"
bd5dbb8a05c8 graft: show more useful status information while grafting
Mads Kiilerich <madski@unity3d.com>
parents: 22955
diff changeset
   128
  grafting 3:32af7686d403 "D"
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   129
  $ hg rebase  -s 42ccdea3bb16 -d .
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   130
  rebasing 1:42ccdea3bb16 "B"
23518
2fb0504b8175 rebase: show warning when rebase creates no changes to commit
Mads Kiilerich <madski@unity3d.com>
parents: 23517
diff changeset
   131
  note: rebase of 1:42ccdea3bb16 created no changes to commit
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   132
  rebasing 2:5fddd98957c8 "C"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   133
  rebasing 3:32af7686d403 "D"
23518
2fb0504b8175 rebase: show warning when rebase creates no changes to commit
Mads Kiilerich <madski@unity3d.com>
parents: 23517
diff changeset
   134
  note: rebase of 3:32af7686d403 created no changes to commit
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   135
  $ hg log -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   136
  o  10:5ae4c968c6ac C
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   137
  |
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   138
  @  9:08483444fef9 D
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   139
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   140
  o  8:8877864f1edb B
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   141
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   142
  | o  7:02de42196ebe H
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   143
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   144
  o |  6:eea13746799a G
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   145
  |\|
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   146
  | o  5:24b6387c8c8c F
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   147
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   148
  o |  4:9520eea781bc E
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   149
  |/
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   150
  o  0:cd010b8cd998 A
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   151
  
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   152
  $ hg log --hidden -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   153
  o  10:5ae4c968c6ac C
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   154
  |
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   155
  @  9:08483444fef9 D
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   156
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   157
  o  8:8877864f1edb B
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   158
  |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   159
  | o  7:02de42196ebe H
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   160
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   161
  o |  6:eea13746799a G
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   162
  |\|
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   163
  | o  5:24b6387c8c8c F
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   164
  | |
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   165
  o |  4:9520eea781bc E
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   166
  |/
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   167
  | x  3:32af7686d403 D (pruned using rebase)
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   168
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   169
  | x  2:5fddd98957c8 C (rewritten using rebase as 10:5ae4c968c6ac)
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   170
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   171
  | x  1:42ccdea3bb16 B (pruned using rebase)
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   172
  |/
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   173
  o  0:cd010b8cd998 A
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   174
  
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   175
  $ hg debugobsolete
34961
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   176
  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   177
  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   178
  32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   179
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   180
31295
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   181
More complex case where part of the rebase set were already rebased
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   182
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   183
  $ hg rebase --rev 'desc(D)' --dest 'desc(H)'
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   184
  rebasing 9:08483444fef9 "D"
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   185
  1 new orphan changesets
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   186
  $ hg debugobsolete
34961
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   187
  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   188
  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   189
  32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   190
  08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   191
  $ hg log -G
19861
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   192
  @  11:4596109a6a43 D
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   193
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   194
  | *  10:5ae4c968c6ac C
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   195
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   196
  | x  9:08483444fef9 D (rewritten using rebase as 11:4596109a6a43)
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   197
  | |
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   198
  | o  8:8877864f1edb B
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   199
  | |
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   200
  o |  7:02de42196ebe H
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   201
  | |
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   202
  | o  6:eea13746799a G
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   203
  |/|
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   204
  o |  5:24b6387c8c8c F
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   205
  | |
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   206
  | o  4:9520eea781bc E
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   207
  |/
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   208
  o  0:cd010b8cd998 A
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   209
  
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   210
  $ hg rebase --source 'desc(B)' --dest 'tip' --config experimental.rebaseskipobsolete=True
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
   211
  rebasing 8:8877864f1edb "B"
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
   212
  note: not rebasing 9:08483444fef9 "D", already in destination as 11:4596109a6a43 "D" (tip)
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   213
  rebasing 10:5ae4c968c6ac "C"
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   214
  $ hg debugobsolete
34961
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   215
  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   216
  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   217
  32af7686d403cf45b5d95f2d70cebea587ac806a 0 {5fddd98957c8a54a4d436dfe1da9d87f21a1b97b} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   218
  08483444fef91d6224f6655ee586a65d263ad34c 4596109a6a4328c398bde3a4a3b6737cfade3003 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   219
  8877864f1edb05d0e07dc4ba77b67a80a7b86672 462a34d07e599b87ea08676a449373fe4e2e1347 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   220
  5ae4c968c6aca831df823664e706c9d4aa34473d 98f6af4ee9539e14da4465128f894c274900b6e5 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
33775
f078d7358e90 revset: remane divergent into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents: 33773
diff changeset
   221
  $ hg log --rev 'contentdivergent()'
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   222
  $ hg log -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   223
  o  13:98f6af4ee953 C
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   224
  |
19861
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   225
  o  12:462a34d07e59 B
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   226
  |
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   227
  @  11:4596109a6a43 D
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   228
  |
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   229
  o  7:02de42196ebe H
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   230
  |
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   231
  | o  6:eea13746799a G
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   232
  |/|
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   233
  o |  5:24b6387c8c8c F
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   234
  | |
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   235
  | o  4:9520eea781bc E
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   236
  |/
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   237
  o  0:cd010b8cd998 A
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   238
  
19861
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   239
  $ hg log --style default --debug -r 4596109a6a4328c398bde3a4a3b6737cfade3003
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   240
  changeset:   11:4596109a6a4328c398bde3a4a3b6737cfade3003
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   241
  phase:       draft
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   242
  parent:      7:02de42196ebee42ef284b6780a87cdc96e8eaab6
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   243
  parent:      -1:0000000000000000000000000000000000000000
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   244
  manifest:    11:a91006e3a02f1edf631f7018e6e5684cf27dd905
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   245
  user:        Nicolas Dumazet <nicdumz.commits@gmail.com>
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   246
  date:        Sat Apr 30 15:24:48 2011 +0200
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   247
  files+:      D
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   248
  extra:       branch=default
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   249
  extra:       rebase_source=08483444fef91d6224f6655ee586a65d263ad34c
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   250
  extra:       source=32af7686d403cf45b5d95f2d70cebea587ac806a
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   251
  description:
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   252
  D
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   253
  
a69a77a80900 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com>
parents: 18472
diff changeset
   254
  
26902
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   255
  $ hg up -qr 'desc(G)'
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   256
  $ hg graft 4596109a6a4328c398bde3a4a3b6737cfade3003
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   257
  grafting 11:4596109a6a43 "D"
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   258
  $ hg up -qr 'desc(E)'
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   259
  $ hg rebase -s tip -d .
27974
bb14a81ce647 graft: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27746
diff changeset
   260
  rebasing 14:9e36056a46e3 "D" (tip)
26902
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   261
  $ hg log --style default --debug -r tip
27974
bb14a81ce647 graft: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27746
diff changeset
   262
  changeset:   15:627d4614809036ba22b9e7cb31638ddc06ab99ab
26902
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   263
  tag:         tip
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   264
  phase:       draft
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   265
  parent:      4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   266
  parent:      -1:0000000000000000000000000000000000000000
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   267
  manifest:    15:648e8ede73ae3e497d093d3a4c8fcc2daa864f42
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   268
  user:        Nicolas Dumazet <nicdumz.commits@gmail.com>
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   269
  date:        Sat Apr 30 15:24:48 2011 +0200
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   270
  files+:      D
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   271
  extra:       branch=default
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   272
  extra:       intermediate-source=4596109a6a4328c398bde3a4a3b6737cfade3003
27974
bb14a81ce647 graft: don't preserve most extra fields
Siddharth Agarwal <sid0@fb.com>
parents: 27746
diff changeset
   273
  extra:       rebase_source=9e36056a46e37c9776168c7375734eebc70e294f
26902
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   274
  extra:       source=32af7686d403cf45b5d95f2d70cebea587ac806a
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   275
  description:
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   276
  D
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   277
  
7ffebbdcb371 rebase: preserve the 'intermediate-source' attribute of grafts
Matt Harbison <matt_harbison@yahoo.com>
parents: 26811
diff changeset
   278
  
31295
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   279
Start rebase from a commit that is obsolete but not hidden only because it's
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   280
a working copy parent. We should be moved back to the starting commit as usual
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   281
even though it is hidden (until we're moved there).
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   282
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   283
  $ hg --hidden up -qr 'first(hidden())'
35518
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35508
diff changeset
   284
  updating to a hidden changeset 42ccdea3bb16
35711
35a0f6f31eef update: display the obsfate of hidden revision we update to
Boris Feld <boris.feld@octobus.net>
parents: 35709
diff changeset
   285
  (hidden revision '42ccdea3bb16' is pruned)
31295
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   286
  $ hg rebase --rev 13 --dest 15
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   287
  rebasing 13:98f6af4ee953 "C"
31297
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   288
  $ hg log -G
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   289
  o  16:294a2b93eb4d C
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   290
  |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   291
  o  15:627d46148090 D
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   292
  |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   293
  | o  12:462a34d07e59 B
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   294
  | |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   295
  | o  11:4596109a6a43 D
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   296
  | |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   297
  | o  7:02de42196ebe H
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   298
  | |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   299
  +---o  6:eea13746799a G
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   300
  | |/
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   301
  | o  5:24b6387c8c8c F
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   302
  | |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   303
  o |  4:9520eea781bc E
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   304
  |/
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   305
  | @  1:42ccdea3bb16 B (pruned using rebase)
31297
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   306
  |/
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   307
  o  0:cd010b8cd998 A
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31295
diff changeset
   308
  
31295
7f869d81ab54 tests: demonstrate broken rebase from obsolete commit
Martin von Zweigbergk <martinvonz@google.com>
parents: 30715
diff changeset
   309
17612
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   310
  $ cd ..
fc2a6114f0a0 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   311
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   312
collapse rebase
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   313
---------------------------------
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   314
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   315
  $ hg clone base collapse
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   316
  updating to branch default
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   317
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   318
  $ cd collapse
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   319
  $ hg rebase  -s 42ccdea3bb16 -d eea13746799a --collapse
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   320
  rebasing 1:42ccdea3bb16 "B"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   321
  rebasing 2:5fddd98957c8 "C"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   322
  rebasing 3:32af7686d403 "D"
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   323
  $ hg log -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   324
  o  8:4dc2197e807b Collapsed revision
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   325
  |
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   326
  | @  7:02de42196ebe H
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   327
  | |
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   328
  o |  6:eea13746799a G
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   329
  |\|
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   330
  | o  5:24b6387c8c8c F
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   331
  | |
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   332
  o |  4:9520eea781bc E
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   333
  |/
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   334
  o  0:cd010b8cd998 A
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   335
  
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   336
  $ hg log --hidden -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   337
  o  8:4dc2197e807b Collapsed revision
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   338
  |
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   339
  | @  7:02de42196ebe H
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   340
  | |
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   341
  o |  6:eea13746799a G
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   342
  |\|
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   343
  | o  5:24b6387c8c8c F
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   344
  | |
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   345
  o |  4:9520eea781bc E
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   346
  |/
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   347
  | x  3:32af7686d403 D (rewritten using rebase as 8:4dc2197e807b)
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   348
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   349
  | x  2:5fddd98957c8 C (rewritten using rebase as 8:4dc2197e807b)
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   350
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   351
  | x  1:42ccdea3bb16 B (rewritten using rebase as 8:4dc2197e807b)
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   352
  |/
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   353
  o  0:cd010b8cd998 A
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   354
  
19924
c23c62209cc4 tests: prepare rebase test for wc parent preservation
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19861
diff changeset
   355
  $ hg id --debug -r tip
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   356
  4dc2197e807bae9817f09905b50ab288be2dbbcf tip
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   357
  $ hg debugobsolete
34961
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   358
  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   359
  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   360
  32af7686d403cf45b5d95f2d70cebea587ac806a 4dc2197e807bae9817f09905b50ab288be2dbbcf 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'rebase', 'user': 'test'}
17613
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   361
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   362
  $ cd ..
aafc521668d8 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17612
diff changeset
   363
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   364
Rebase set has hidden descendants
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   365
---------------------------------
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   366
35055
852620fe4ca7 tests: clarify a comment in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 34961
diff changeset
   367
We rebase a changeset which has hidden descendants. Hidden changesets must not
852620fe4ca7 tests: clarify a comment in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 34961
diff changeset
   368
be rebased.
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   369
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   370
  $ hg clone base hidden
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   371
  updating to branch default
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   372
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   373
  $ cd hidden
35057
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   374
  $ hg log -G
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   375
  @  7:02de42196ebe H
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   376
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   377
  | o  6:eea13746799a G
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   378
  |/|
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   379
  o |  5:24b6387c8c8c F
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   380
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   381
  | o  4:9520eea781bc E
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   382
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   383
  | o  3:32af7686d403 D
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   384
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   385
  | o  2:5fddd98957c8 C
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   386
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   387
  | o  1:42ccdea3bb16 B
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   388
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   389
  o  0:cd010b8cd998 A
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   390
  
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   391
  $ hg rebase -s 5fddd98957c8 -d eea13746799a
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   392
  rebasing 2:5fddd98957c8 "C"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   393
  rebasing 3:32af7686d403 "D"
35057
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   394
  $ hg log -G
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   395
  o  9:cf44d2f5a9f4 D
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   396
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   397
  o  8:e273c5e7d2d2 C
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   398
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   399
  | @  7:02de42196ebe H
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   400
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   401
  o |  6:eea13746799a G
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   402
  |\|
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   403
  | o  5:24b6387c8c8c F
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   404
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   405
  o |  4:9520eea781bc E
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   406
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   407
  | o  1:42ccdea3bb16 B
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   408
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   409
  o  0:cd010b8cd998 A
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   410
  
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   411
  $ hg rebase -s 42ccdea3bb16 -d 02de42196ebe
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   412
  rebasing 1:42ccdea3bb16 "B"
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   413
  $ hg log -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   414
  o  10:7c6027df6a99 B
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   415
  |
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   416
  | o  9:cf44d2f5a9f4 D
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   417
  | |
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   418
  | o  8:e273c5e7d2d2 C
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   419
  | |
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   420
  @ |  7:02de42196ebe H
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   421
  | |
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   422
  | o  6:eea13746799a G
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   423
  |/|
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   424
  o |  5:24b6387c8c8c F
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   425
  | |
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   426
  | o  4:9520eea781bc E
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   427
  |/
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   428
  o  0:cd010b8cd998 A
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   429
  
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   430
  $ hg log --hidden -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   431
  o  10:7c6027df6a99 B
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   432
  |
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   433
  | o  9:cf44d2f5a9f4 D
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   434
  | |
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   435
  | o  8:e273c5e7d2d2 C
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   436
  | |
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   437
  @ |  7:02de42196ebe H
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   438
  | |
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   439
  | o  6:eea13746799a G
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   440
  |/|
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   441
  o |  5:24b6387c8c8c F
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   442
  | |
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   443
  | o  4:9520eea781bc E
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   444
  |/
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   445
  | x  3:32af7686d403 D (rewritten using rebase as 9:cf44d2f5a9f4)
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   446
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   447
  | x  2:5fddd98957c8 C (rewritten using rebase as 8:e273c5e7d2d2)
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   448
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   449
  | x  1:42ccdea3bb16 B (rewritten using rebase as 10:7c6027df6a99)
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   450
  |/
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   451
  o  0:cd010b8cd998 A
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   452
  
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   453
  $ hg debugobsolete
34961
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   454
  5fddd98957c8a54a4d436dfe1da9d87f21a1b97b e273c5e7d2d29df783dce9f9eaa3ac4adc69c15d 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   455
  32af7686d403cf45b5d95f2d70cebea587ac806a cf44d2f5a9f4297a62be94cbdd3dff7c7dc54258 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
   456
  42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 7c6027df6a99d93f461868e5433f63bde20b6dfb 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
17615
9e2dc0d292cd rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17613
diff changeset
   457
18398
1a00c8451640 test: fix in-test comments related to obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18164
diff changeset
   458
Test that rewriting leaving instability behind is allowed
1a00c8451640 test: fix in-test comments related to obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18164
diff changeset
   459
---------------------------------------------------------------------
18164
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   460
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   461
  $ hg log -r 'children(8)'
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   462
  9:cf44d2f5a9f4 D (no-eol)
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   463
  $ hg rebase -r 8
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   464
  rebasing 8:e273c5e7d2d2 "C"
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   465
  1 new orphan changesets
18164
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   466
  $ hg log -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   467
  o  11:0d8f238b634c C
18164
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   468
  |
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   469
  o  10:7c6027df6a99 B
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   470
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   471
  | *  9:cf44d2f5a9f4 D
18164
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   472
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   473
  | x  8:e273c5e7d2d2 C (rewritten using rebase as 11:0d8f238b634c)
18164
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   474
  | |
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   475
  @ |  7:02de42196ebe H
18164
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   476
  | |
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   477
  | o  6:eea13746799a G
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   478
  |/|
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   479
  o |  5:24b6387c8c8c F
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   480
  | |
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   481
  | o  4:9520eea781bc E
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   482
  |/
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   483
  o  0:cd010b8cd998 A
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   484
  
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   485
bacf55bd8f90 rebase: allow non-head rebase-set when obsolete is enabled
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 17615
diff changeset
   486
18424
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   487
Test multiple root handling
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   488
------------------------------------
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   489
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   490
  $ hg rebase --dest 4 --rev '7+11+9'
30007
aca0954d3739 rebase: rebase changesets in topo order (issue5370) (BC)
Xidorn Quan <me@upsuper.org>
parents: 29372
diff changeset
   491
  rebasing 9:cf44d2f5a9f4 "D"
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   492
  rebasing 7:02de42196ebe "H"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   493
  rebasing 11:0d8f238b634c "C" (tip)
18424
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   494
  $ hg log -G
19925
9c78ed396075 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 19924
diff changeset
   495
  o  14:1e8370e38cca C
18424
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   496
  |
30007
aca0954d3739 rebase: rebase changesets in topo order (issue5370) (BC)
Xidorn Quan <me@upsuper.org>
parents: 29372
diff changeset
   497
  @  13:bfe264faf697 H
aca0954d3739 rebase: rebase changesets in topo order (issue5370) (BC)
Xidorn Quan <me@upsuper.org>
parents: 29372
diff changeset
   498
  |
aca0954d3739 rebase: rebase changesets in topo order (issue5370) (BC)
Xidorn Quan <me@upsuper.org>
parents: 29372
diff changeset
   499
  | o  12:102b4c1d889b D
18424
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   500
  |/
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   501
  | *  10:7c6027df6a99 B
18424
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   502
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   503
  | x  7:02de42196ebe H (rewritten using rebase as 13:bfe264faf697)
18424
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   504
  | |
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   505
  +---o  6:eea13746799a G
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   506
  | |/
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   507
  | o  5:24b6387c8c8c F
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   508
  | |
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   509
  o |  4:9520eea781bc E
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   510
  |/
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   511
  o  0:cd010b8cd998 A
100fdc84670f rebase: support multiple roots for rebaseset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18398
diff changeset
   512
  
18444
55aff0c2b73c rebase: do not invent successor to skipped changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18424
diff changeset
   513
  $ cd ..
18472
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   514
33678
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   515
Detach both parents
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   516
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   517
  $ hg init double-detach
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   518
  $ cd double-detach
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   519
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   520
  $ hg debugdrawdag <<EOF
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   521
  >   F
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   522
  >  /|
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   523
  > C E
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   524
  > | |
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   525
  > B D G
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   526
  >  \|/
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   527
  >   A
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   528
  > EOF
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   529
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
   530
  $ hg rebase -d G -r 'B + D + F'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
   531
  rebasing 1:112478962961 "B" (B)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
   532
  rebasing 2:b18e25de2cf5 "D" (D)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
   533
  rebasing 6:f15c3adaf214 "F" (F tip)
33789
19f495fef0a3 rebase: change "result would have 3 parent" error message (BC)
Jun Wu <quark@fb.com>
parents: 33786
diff changeset
   534
  abort: cannot rebase 6:f15c3adaf214 without moving at least one of its parents
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
   535
  [255]
33678
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   536
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   537
  $ cd ..
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33677
diff changeset
   538
18472
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   539
test on rebase dropping a merge
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   540
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   541
(setup)
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   542
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   543
  $ hg init dropmerge
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   544
  $ cd dropmerge
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   545
  $ hg unbundle "$TESTDIR/bundles/rebase.hg"
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   546
  adding changesets
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   547
  adding manifests
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   548
  adding file changes
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   549
  added 8 changesets with 7 changes to 7 files (+2 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 34290
diff changeset
   550
  new changesets cd010b8cd998:02de42196ebe
18472
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   551
  (run 'hg heads' to see heads, 'hg merge' to merge)
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   552
  $ hg up 3
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   553
  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   554
  $ hg merge 7
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   555
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   556
  (branch merge, don't forget to commit)
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   557
  $ hg ci -m 'M'
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   558
  $ echo I > I
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   559
  $ hg add I
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   560
  $ hg ci -m I
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   561
  $ hg log -G
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   562
  @  9:4bde274eefcf I
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   563
  |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   564
  o    8:53a6a128b2b7 M
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   565
  |\
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   566
  | o  7:02de42196ebe H
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   567
  | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   568
  | | o  6:eea13746799a G
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   569
  | |/|
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   570
  | o |  5:24b6387c8c8c F
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   571
  | | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   572
  | | o  4:9520eea781bc E
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   573
  | |/
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   574
  o |  3:32af7686d403 D
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   575
  | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   576
  o |  2:5fddd98957c8 C
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   577
  | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   578
  o |  1:42ccdea3bb16 B
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   579
  |/
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   580
  o  0:cd010b8cd998 A
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   581
  
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   582
(actual test)
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   583
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   584
  $ hg rebase --dest 6 --rev '((desc(H) + desc(D))::) - desc(M)'
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   585
  rebasing 3:32af7686d403 "D"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   586
  rebasing 7:02de42196ebe "H"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23505
diff changeset
   587
  rebasing 9:4bde274eefcf "I" (tip)
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   588
  1 new orphan changesets
18472
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   589
  $ hg log -G
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   590
  @  12:acd174b7ab39 I
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   591
  |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   592
  o  11:6c11a6218c97 H
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   593
  |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   594
  | o  10:b5313c85b22e D
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   595
  |/
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   596
  | *    8:53a6a128b2b7 M
18472
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   597
  | |\
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   598
  | | x  7:02de42196ebe H (rewritten using rebase as 11:6c11a6218c97)
18472
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   599
  | | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   600
  o---+  6:eea13746799a G
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   601
  | | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   602
  | | o  5:24b6387c8c8c F
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   603
  | | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   604
  o---+  4:9520eea781bc E
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   605
   / /
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   606
  x |  3:32af7686d403 D (rewritten using rebase as 10:b5313c85b22e)
18472
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   607
  | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   608
  o |  2:5fddd98957c8 C
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   609
  | |
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   610
  o |  1:42ccdea3bb16 B
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   611
  |/
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   612
  o  0:cd010b8cd998 A
37100f30590f test-rebase: add another test for rebase with multiple roots
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 18447
diff changeset
   613
  
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   614
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   615
Test hidden changesets in the rebase set (issue4504)
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   616
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   617
  $ hg up --hidden 9
35518
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35508
diff changeset
   618
  updating to a hidden changeset 4bde274eefcf
35711
35a0f6f31eef update: display the obsfate of hidden revision we update to
Boris Feld <boris.feld@octobus.net>
parents: 35709
diff changeset
   619
  (hidden revision '4bde274eefcf' was rewritten as: acd174b7ab39)
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   620
  3 files updated, 0 files merged, 1 files removed, 0 files unresolved
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   621
  $ echo J > J
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   622
  $ hg add J
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   623
  $ hg commit -m J
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   624
  1 new orphan changesets
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   625
  $ hg debugobsolete `hg log --rev . -T '{node}'`
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33332
diff changeset
   626
  obsoleted 1 changesets
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   627
28429
a47881680402 rebase: turn rebaseskipobsolete on by default
Kostia Balytskyi <ikostia@fb.com>
parents: 28280
diff changeset
   628
  $ hg rebase --rev .~1::. --dest 'max(desc(D))' --traceback --config experimental.rebaseskipobsolete=off
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   629
  rebasing 9:4bde274eefcf "I"
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   630
  rebasing 13:06edfc82198f "J" (tip)
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   631
  2 new content-divergent changesets
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   632
  $ hg log -G
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   633
  @  15:5ae8a643467b J
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   634
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   635
  *  14:9ad579b4a5de I
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   636
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   637
  | *  12:acd174b7ab39 I
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   638
  | |
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   639
  | o  11:6c11a6218c97 H
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   640
  | |
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   641
  o |  10:b5313c85b22e D
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   642
  |/
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   643
  | *    8:53a6a128b2b7 M
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   644
  | |\
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   645
  | | x  7:02de42196ebe H (rewritten using rebase as 11:6c11a6218c97)
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   646
  | | |
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   647
  o---+  6:eea13746799a G
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   648
  | | |
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   649
  | | o  5:24b6387c8c8c F
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   650
  | | |
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   651
  o---+  4:9520eea781bc E
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   652
   / /
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   653
  x |  3:32af7686d403 D (rewritten using rebase as 10:b5313c85b22e)
23970
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   654
  | |
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   655
  o |  2:5fddd98957c8 C
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   656
  | |
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   657
  o |  1:42ccdea3bb16 B
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   658
  |/
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   659
  o  0:cd010b8cd998 A
8a544fb645bb rebase: ensure rebase revision remains visible (issue4504)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23518
diff changeset
   660
  
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   661
  $ hg up 14 -C
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   662
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   663
  $ echo "K" > K
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   664
  $ hg add K
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   665
  $ hg commit --amend -m "K"
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   666
  1 new orphan changesets
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   667
  $ echo "L" > L
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   668
  $ hg add L
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   669
  $ hg commit -m "L"
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   670
  $ hg up '.^'
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   671
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   672
  $ echo "M" > M
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   673
  $ hg add M
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   674
  $ hg commit --amend -m "M"
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   675
  1 new orphan changesets
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   676
  $ hg log -G
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   677
  @  18:bfaedf8eb73b M
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   678
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   679
  | *  17:97219452e4bd L
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   680
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   681
  | x  16:fc37a630c901 K (rewritten using amend as 18:bfaedf8eb73b)
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   682
  |/
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   683
  | *  15:5ae8a643467b J
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   684
  | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   685
  | x  14:9ad579b4a5de I (rewritten using amend as 16:fc37a630c901)
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   686
  |/
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   687
  | *  12:acd174b7ab39 I
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   688
  | |
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   689
  | o  11:6c11a6218c97 H
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   690
  | |
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   691
  o |  10:b5313c85b22e D
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   692
  |/
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
   693
  | *    8:53a6a128b2b7 M
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   694
  | |\
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   695
  | | x  7:02de42196ebe H (rewritten using rebase as 11:6c11a6218c97)
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   696
  | | |
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   697
  o---+  6:eea13746799a G
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   698
  | | |
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   699
  | | o  5:24b6387c8c8c F
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   700
  | | |
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   701
  o---+  4:9520eea781bc E
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   702
   / /
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   703
  x |  3:32af7686d403 D (rewritten using rebase as 10:b5313c85b22e)
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   704
  | |
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   705
  o |  2:5fddd98957c8 C
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   706
  | |
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   707
  o |  1:42ccdea3bb16 B
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   708
  |/
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   709
  o  0:cd010b8cd998 A
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   710
  
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   711
  $ hg rebase -s 14 -d 17 --config experimental.rebaseskipobsolete=True
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   712
  note: not rebasing 14:9ad579b4a5de "I", already in destination as 16:fc37a630c901 "K"
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   713
  rebasing 15:5ae8a643467b "J"
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   714
  1 new orphan changesets
26349
92409f8dff5d rebase: don't rebase obsolete commit whose successor is already rebased
Laurent Charignon <lcharignon@fb.com>
parents: 23970
diff changeset
   715
26675
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   716
  $ cd ..
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   717
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   718
Skip obsolete changeset even with multiple hops
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   719
-----------------------------------------------
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   720
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   721
setup
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   722
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   723
  $ hg init obsskip
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   724
  $ cd obsskip
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   725
  $ cat << EOF >> .hg/hgrc
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   726
  > [experimental]
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   727
  > rebaseskipobsolete = True
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   728
  > [extensions]
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   729
  > strip =
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   730
  > EOF
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   731
  $ echo A > A
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   732
  $ hg add A
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   733
  $ hg commit -m A
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   734
  $ echo B > B
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   735
  $ hg add B
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   736
  $ hg commit -m B0
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   737
  $ hg commit --amend -m B1
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   738
  $ hg commit --amend -m B2
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   739
  $ hg up --hidden 'desc(B0)'
35518
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35508
diff changeset
   740
  updating to a hidden changeset a8b11f55fb19
35711
35a0f6f31eef update: display the obsfate of hidden revision we update to
Boris Feld <boris.feld@octobus.net>
parents: 35709
diff changeset
   741
  (hidden revision 'a8b11f55fb19' was rewritten as: 261e70097290)
26675
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   742
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   743
  $ echo C > C
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   744
  $ hg add C
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   745
  $ hg commit -m C
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   746
  1 new orphan changesets
35057
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   747
  $ hg log -G
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   748
  @  4:212cb178bcbb C
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   749
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   750
  | o  3:261e70097290 B2
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   751
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   752
  x |  1:a8b11f55fb19 B0 (rewritten using amend as 3:261e70097290)
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   753
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   754
  o  0:4a2df7238c3b A
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   755
  
26675
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   756
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   757
Rebase finds its way in a chain of marker
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   758
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   759
  $ hg rebase -d 'desc(B2)'
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   760
  note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   761
  rebasing 4:212cb178bcbb "C" (tip)
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   762
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   763
Even when the chain include missing node
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   764
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   765
  $ hg up --hidden 'desc(B0)'
35518
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35508
diff changeset
   766
  updating to a hidden changeset a8b11f55fb19
35711
35a0f6f31eef update: display the obsfate of hidden revision we update to
Boris Feld <boris.feld@octobus.net>
parents: 35709
diff changeset
   767
  (hidden revision 'a8b11f55fb19' was rewritten as: 261e70097290)
26675
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   768
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   769
  $ echo D > D
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   770
  $ hg add D
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   771
  $ hg commit -m D
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   772
  1 new orphan changesets
26675
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   773
  $ hg --hidden strip -r 'desc(B1)'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35058
diff changeset
   774
  saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg
35778
128dd940bedc repair: invalidate volatile sets after stripping
Martin von Zweigbergk <martinvonz@google.com>
parents: 35712
diff changeset
   775
  1 new orphan changesets
35057
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   776
  $ hg log -G
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   777
  @  5:1a79b7535141 D
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   778
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   779
  | o  4:ff2c4d47b71d C
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   780
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   781
  | o  2:261e70097290 B2
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   782
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   783
  x |  1:a8b11f55fb19 B0 (rewritten using amend as 2:261e70097290)
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   784
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   785
  o  0:4a2df7238c3b A
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   786
  
26675
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   787
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   788
  $ hg rebase -d 'desc(B2)'
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   789
  note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2"
b73eb98c0243 rebase: properly handle chains of markers with missing nodes
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26349
diff changeset
   790
  rebasing 5:1a79b7535141 "D" (tip)
27012
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   791
  $ hg up 4
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   792
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   793
  $ echo "O" > O
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   794
  $ hg add O
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   795
  $ hg commit -m O
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   796
  $ echo "P" > P
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   797
  $ hg add P
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   798
  $ hg commit -m P
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   799
  $ hg log -G
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   800
  @  8:8d47583e023f P
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   801
  |
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   802
  o  7:360bbaa7d3ce O
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   803
  |
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   804
  | o  6:9c48361117de D
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   805
  | |
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   806
  o |  4:ff2c4d47b71d C
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   807
  |/
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   808
  o  2:261e70097290 B2
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   809
  |
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   810
  o  0:4a2df7238c3b A
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   811
  
34865
a0100f34e20b config: replace experimental.stabilization by experimental.evolution
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   812
  $ hg debugobsolete `hg log -r 7 -T '{node}\n'` --config experimental.evolution=true
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33332
diff changeset
   813
  obsoleted 1 changesets
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   814
  1 new orphan changesets
27012
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   815
  $ hg rebase -d 6 -r "4::"
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
   816
  rebasing 4:ff2c4d47b71d "C"
33842
30573b3d2ebc rebase: move obsoleted not rebased messages earlier (BC)
Jun Wu <quark@fb.com>
parents: 33789
diff changeset
   817
  note: not rebasing 7:360bbaa7d3ce "O", it has no successor
27012
5eac7ab59b95 rebase: don't rebase obsolete commits with no successor
Laurent Charignon <lcharignon@fb.com>
parents: 27011
diff changeset
   818
  rebasing 8:8d47583e023f "P" (tip)
27577
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   819
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   820
If all the changeset to be rebased are obsolete and present in the destination, we
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   821
should display a friendly error message
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   822
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   823
  $ hg log -G
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   824
  @  10:121d9e3bc4c6 P
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   825
  |
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   826
  o  9:4be60e099a77 C
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   827
  |
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   828
  o  6:9c48361117de D
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   829
  |
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   830
  o  2:261e70097290 B2
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   831
  |
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   832
  o  0:4a2df7238c3b A
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   833
  
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   834
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   835
  $ hg up 9
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   836
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   837
  $ echo "non-relevant change" > nonrelevant
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   838
  $ hg add nonrelevant
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   839
  $ hg commit -m nonrelevant
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   840
  created new head
34865
a0100f34e20b config: replace experimental.stabilization by experimental.evolution
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   841
  $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.evolution=true
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33332
diff changeset
   842
  obsoleted 1 changesets
35057
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   843
  $ hg log -G
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   844
  @  11:f44da1f4954c nonrelevant (pruned)
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   845
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   846
  | o  10:121d9e3bc4c6 P
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   847
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   848
  o  9:4be60e099a77 C
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   849
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   850
  o  6:9c48361117de D
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   851
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   852
  o  2:261e70097290 B2
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   853
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   854
  o  0:4a2df7238c3b A
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35056
diff changeset
   855
  
27577
f9e755736b0e rebase: better error message when rebased changes are all in destination
Laurent Charignon <lcharignon@fb.com>
parents: 27147
diff changeset
   856
  $ hg rebase -r . -d 10
29372
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
   857
  note: not rebasing 11:f44da1f4954c "nonrelevant" (tip), it has no successor
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   858
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   859
If a rebase is going to create divergence, it should abort
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   860
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   861
  $ hg log -G
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
   862
  @  10:121d9e3bc4c6 P
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   863
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   864
  o  9:4be60e099a77 C
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   865
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   866
  o  6:9c48361117de D
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   867
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   868
  o  2:261e70097290 B2
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   869
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   870
  o  0:4a2df7238c3b A
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   871
  
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   872
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   873
  $ hg up 9
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   874
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   875
  $ echo "john" > doe
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   876
  $ hg add doe
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   877
  $ hg commit -m "john doe"
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   878
  created new head
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   879
  $ hg up 10
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   880
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   881
  $ echo "foo" > bar
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   882
  $ hg add bar
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   883
  $ hg commit --amend -m "10'"
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   884
  $ hg up 10 --hidden
35518
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35508
diff changeset
   885
  updating to a hidden changeset 121d9e3bc4c6
35711
35a0f6f31eef update: display the obsfate of hidden revision we update to
Boris Feld <boris.feld@octobus.net>
parents: 35709
diff changeset
   886
  (hidden revision '121d9e3bc4c6' was rewritten as: 77d874d096a2)
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   887
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   888
  $ echo "bar" > foo
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   889
  $ hg add foo
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   890
  $ hg commit -m "bar foo"
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   891
  1 new orphan changesets
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   892
  $ hg log -G
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   893
  @  14:73568ab6879d bar foo
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   894
  |
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   895
  | o  13:77d874d096a2 10'
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   896
  | |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   897
  | | o  12:3eb461388009 john doe
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   898
  | |/
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   899
  x |  10:121d9e3bc4c6 P (rewritten using amend as 13:77d874d096a2)
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   900
  |/
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   901
  o  9:4be60e099a77 C
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   902
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   903
  o  6:9c48361117de D
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   904
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   905
  o  2:261e70097290 B2
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   906
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   907
  o  0:4a2df7238c3b A
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   908
  
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   909
  $ hg summary
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   910
  parent: 14:73568ab6879d tip (orphan)
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   911
   bar foo
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   912
  branch: default
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   913
  commit: (clean)
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   914
  update: 2 new changesets, 3 branch heads (merge)
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   915
  phases: 8 draft
33667
03039ff3082b evolution: rename unstable to orphan
Boris Feld <boris.feld@octobus.net>
parents: 33542
diff changeset
   916
  orphan: 1 changesets
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   917
  $ hg rebase -s 10 -d 12
28188
6411140aeda9 rebase: add potential divergent commit hashes to error message (issue5086)
Kostia Balytskyi <ikostia@fb.com>
parents: 27974
diff changeset
   918
  abort: this rebase will cause divergences from: 121d9e3bc4c6
34872
29f52e7966dd config: gather allowdivergence under the evolution namespace
Boris Feld <boris.feld@octobus.net>
parents: 34870
diff changeset
   919
  (to force the rebase please set experimental.evolution.allowdivergence=True)
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   920
  [255]
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   921
  $ hg log -G
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   922
  @  14:73568ab6879d bar foo
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   923
  |
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   924
  | o  13:77d874d096a2 10'
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   925
  | |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   926
  | | o  12:3eb461388009 john doe
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   927
  | |/
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   928
  x |  10:121d9e3bc4c6 P (rewritten using amend as 13:77d874d096a2)
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   929
  |/
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   930
  o  9:4be60e099a77 C
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   931
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   932
  o  6:9c48361117de D
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   933
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   934
  o  2:261e70097290 B2
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   935
  |
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   936
  o  0:4a2df7238c3b A
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   937
  
34872
29f52e7966dd config: gather allowdivergence under the evolution namespace
Boris Feld <boris.feld@octobus.net>
parents: 34870
diff changeset
   938
With experimental.evolution.allowdivergence=True, rebase can create divergence
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   939
34872
29f52e7966dd config: gather allowdivergence under the evolution namespace
Boris Feld <boris.feld@octobus.net>
parents: 34870
diff changeset
   940
  $ hg rebase -s 10 -d 12 --config experimental.evolution.allowdivergence=True
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   941
  rebasing 10:121d9e3bc4c6 "P"
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   942
  rebasing 14:73568ab6879d "bar foo" (tip)
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   943
  2 new content-divergent changesets
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   944
  $ hg summary
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   945
  parent: 16:61bd55f69bc4 tip
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   946
   bar foo
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   947
  branch: default
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   948
  commit: (clean)
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   949
  update: 1 new changesets, 2 branch heads (merge)
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   950
  phases: 8 draft
33688
2194a8723138 evolution: rename divergent to content-divergent
Boris Feld <boris.feld@octobus.net>
parents: 33678
diff changeset
   951
  content-divergent: 2 changesets
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   952
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   953
rebase --continue + skipped rev because their successors are in destination
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   954
we make a change in trunk and work on conflicting changes to make rebase abort.
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   955
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   956
  $ hg log -G -r 16::
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   957
  @  16:61bd55f69bc4 bar foo
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   958
  |
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   959
  ~
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   960
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   961
Create the two changes in trunk
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   962
  $ printf "a" > willconflict
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   963
  $ hg add willconflict
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   964
  $ hg commit -m "willconflict first version"
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   965
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   966
  $ printf "dummy" > C
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   967
  $ hg commit -m "dummy change successor"
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   968
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   969
Create the changes that we will rebase
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   970
  $ hg update -C 16 -q
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   971
  $ printf "b" > willconflict
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   972
  $ hg add willconflict
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   973
  $ hg commit -m "willconflict second version"
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   974
  created new head
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   975
  $ printf "dummy" > K
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   976
  $ hg add K
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   977
  $ hg commit -m "dummy change"
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   978
  $ printf "dummy" > L
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   979
  $ hg add L
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   980
  $ hg commit -m "dummy change"
34865
a0100f34e20b config: replace experimental.stabilization by experimental.evolution
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
   981
  $ hg debugobsolete `hg log -r ".^" -T '{node}'` `hg log -r 18 -T '{node}'` --config experimental.evolution=true
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33332
diff changeset
   982
  obsoleted 1 changesets
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
   983
  1 new orphan changesets
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   984
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   985
  $ hg log -G -r 16::
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   986
  @  21:7bdc8a87673d dummy change
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   987
  |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
   988
  x  20:8b31da3c4919 dummy change (rewritten as 18:601db7a18f51)
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   989
  |
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   990
  o  19:b82fb57ea638 willconflict second version
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   991
  |
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   992
  | o  18:601db7a18f51 dummy change successor
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   993
  | |
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   994
  | o  17:357ddf1602d5 willconflict first version
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   995
  |/
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   996
  o  16:61bd55f69bc4 bar foo
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   997
  |
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
   998
  ~
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
   999
  $ hg rebase -r ".^^ + .^ + ." -d 18
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
  1000
  rebasing 19:b82fb57ea638 "willconflict second version"
28686
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1001
  merging willconflict
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1002
  warning: conflicts while merging willconflict! (edit, then use 'hg resolve --mark')
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1003
  unresolved conflicts (see hg resolve, then hg rebase --continue)
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1004
  [1]
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1005
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1006
  $ hg resolve --mark willconflict
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1007
  (no more unresolved files)
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1008
  continue: hg rebase --continue
b212e01fead0 rebase: fix crash when rebase aborts while rebasing obsolete revisions
Laurent Charignon <lcharignon@fb.com>
parents: 28429
diff changeset
  1009
  $ hg rebase --continue
34085
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
  1010
  rebasing 19:b82fb57ea638 "willconflict second version"
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
  1011
  note: not rebasing 20:8b31da3c4919 "dummy change", already in destination as 18:601db7a18f51 "dummy change successor"
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34009
diff changeset
  1012
  rebasing 21:7bdc8a87673d "dummy change" (tip)
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1013
  $ cd ..
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1014
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1015
Divergence cases due to obsolete changesets
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1016
-------------------------------------------
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1017
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1018
We should ignore branches with unstable changesets when they are based on an
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1019
obsolete changeset which successor is in rebase set.
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1020
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1021
  $ hg init divergence
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1022
  $ cd divergence
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1023
  $ cat >> .hg/hgrc << EOF
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1024
  > [extensions]
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1025
  > strip =
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1026
  > [alias]
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1027
  > strip = strip --no-backup --quiet
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1028
  > [templates]
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1029
  > instabilities = '{rev}:{node|short} {desc|firstline}{if(instabilities," ({instabilities})")}\n'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1030
  > EOF
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1031
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1032
  $ hg debugdrawdag <<EOF
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1033
  >   e   f
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1034
  >   |   |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1035
  >   d'  d # replace: d -> d'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1036
  >    \ /
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1037
  >     c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1038
  >     |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1039
  >   x b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1040
  >    \|
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1041
  >     a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1042
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1043
  1 new orphan changesets
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1044
  $ hg log -G -r 'a'::
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
  1045
  *  7:1143e9adc121 f
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1046
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1047
  | o  6:d60ebfa0f1cb e
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1048
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1049
  | o  5:027ad6c5830d d'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1050
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1051
  x |  4:76be324c128b d (rewritten using replace as 5:027ad6c5830d)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1052
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1053
  o  3:a82ac2b38757 c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1054
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1055
  | o  2:630d7c95eff7 x
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1056
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1057
  o |  1:488e1b7e7341 b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1058
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1059
  o  0:b173517d0057 a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1060
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1061
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1062
Changeset d and its descendants are excluded to avoid divergence of d, which
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1063
would occur because the successor of d (d') is also in rebaseset. As a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1064
consequence f (descendant of d) is left behind.
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1065
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1066
  $ hg rebase -b 'e' -d 'x'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1067
  rebasing 1:488e1b7e7341 "b" (b)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1068
  rebasing 3:a82ac2b38757 "c" (c)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1069
  rebasing 5:027ad6c5830d "d'" (d')
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1070
  rebasing 6:d60ebfa0f1cb "e" (e)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1071
  note: not rebasing 4:76be324c128b "d" (d) and its descendants as this would cause divergence
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1072
  $ hg log -G -r 'a'::
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1073
  o  11:eb6d63fc4ed5 e
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1074
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1075
  o  10:44d8c724a70c d'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1076
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1077
  o  9:d008e6b4d3fd c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1078
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1079
  o  8:67e8f4a16c49 b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1080
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
  1081
  | *  7:1143e9adc121 f
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1082
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1083
  | | x  6:d60ebfa0f1cb e (rewritten using rebase as 11:eb6d63fc4ed5)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1084
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1085
  | | x  5:027ad6c5830d d' (rewritten using rebase as 10:44d8c724a70c)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1086
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1087
  | x |  4:76be324c128b d (rewritten using replace as 5:027ad6c5830d)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1088
  | |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1089
  | x  3:a82ac2b38757 c (rewritten using rebase as 9:d008e6b4d3fd)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1090
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1091
  o |  2:630d7c95eff7 x
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1092
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1093
  | x  1:488e1b7e7341 b (rewritten using rebase as 8:67e8f4a16c49)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1094
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1095
  o  0:b173517d0057 a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1096
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1097
  $ hg strip -r 8:
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1098
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1099
If the rebase set has an obsolete (d) with a successor (d') outside the rebase
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1100
set and none in destination, we still get the divergence warning.
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1101
By allowing divergence, we can perform the rebase.
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1102
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1103
  $ hg rebase -r 'c'::'f' -d 'x'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1104
  abort: this rebase will cause divergences from: 76be324c128b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1105
  (to force the rebase please set experimental.evolution.allowdivergence=True)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1106
  [255]
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1107
  $ hg rebase --config experimental.evolution.allowdivergence=true -r 'c'::'f' -d 'x'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1108
  rebasing 3:a82ac2b38757 "c" (c)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1109
  rebasing 4:76be324c128b "d" (d)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1110
  rebasing 7:1143e9adc121 "f" (f tip)
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1111
  1 new orphan changesets
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1112
  2 new content-divergent changesets
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1113
  $ hg log -G -r 'a':: -T instabilities
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1114
  o  10:e1744ea07510 f
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1115
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
  1116
  *  9:e2b36ea9a0a0 d (content-divergent)
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1117
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1118
  o  8:6a0376de376e c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1119
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1120
  | x  7:1143e9adc121 f
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1121
  | |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
  1122
  | | *  6:d60ebfa0f1cb e (orphan)
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1123
  | | |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
  1124
  | | *  5:027ad6c5830d d' (orphan content-divergent)
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1125
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1126
  | x |  4:76be324c128b d
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1127
  | |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1128
  | x  3:a82ac2b38757 c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1129
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1130
  o |  2:630d7c95eff7 x
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1131
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1132
  | o  1:488e1b7e7341 b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1133
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1134
  o  0:b173517d0057 a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1135
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1136
  $ hg strip -r 8:
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1137
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1138
(Not skipping obsoletes means that divergence is allowed.)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1139
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1140
  $ hg rebase --config experimental.rebaseskipobsolete=false -r 'c'::'f' -d 'x'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1141
  rebasing 3:a82ac2b38757 "c" (c)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1142
  rebasing 4:76be324c128b "d" (d)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1143
  rebasing 7:1143e9adc121 "f" (f tip)
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1144
  1 new orphan changesets
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1145
  2 new content-divergent changesets
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1146
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1147
  $ hg strip -r 0:
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1148
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1149
Similar test on a more complex graph
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1150
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1151
  $ hg debugdrawdag <<EOF
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1152
  >       g
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1153
  >       |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1154
  >   f   e
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1155
  >   |   |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1156
  >   e'  d # replace: e -> e'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1157
  >    \ /
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1158
  >     c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1159
  >     |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1160
  >   x b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1161
  >    \|
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1162
  >     a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1163
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1164
  1 new orphan changesets
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1165
  $ hg log -G -r 'a':
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
  1166
  *  8:2876ce66c6eb g
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1167
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1168
  | o  7:3ffec603ab53 f
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1169
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1170
  x |  6:e36fae928aec e (rewritten using replace as 5:63324dc512ea)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1171
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1172
  | o  5:63324dc512ea e'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1173
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1174
  o |  4:76be324c128b d
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1175
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1176
  o  3:a82ac2b38757 c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1177
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1178
  | o  2:630d7c95eff7 x
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1179
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1180
  o |  1:488e1b7e7341 b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1181
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1182
  o  0:b173517d0057 a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1183
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1184
  $ hg rebase -b 'f' -d 'x'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1185
  rebasing 1:488e1b7e7341 "b" (b)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1186
  rebasing 3:a82ac2b38757 "c" (c)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1187
  rebasing 5:63324dc512ea "e'" (e')
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1188
  rebasing 7:3ffec603ab53 "f" (f)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1189
  rebasing 4:76be324c128b "d" (d)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1190
  note: not rebasing 6:e36fae928aec "e" (e) and its descendants as this would cause divergence
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1191
  $ hg log -G -r 'a':
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1192
  o  13:a1707a5b7c2c d
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1193
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1194
  | o  12:ef6251596616 f
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1195
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1196
  | o  11:b6f172e64af9 e'
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1197
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1198
  o  10:d008e6b4d3fd c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1199
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1200
  o  9:67e8f4a16c49 b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1201
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
  1202
  | *  8:2876ce66c6eb g
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1203
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1204
  | | x  7:3ffec603ab53 f (rewritten using rebase as 12:ef6251596616)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1205
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1206
  | x |  6:e36fae928aec e (rewritten using replace as 5:63324dc512ea)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1207
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1208
  | | x  5:63324dc512ea e' (rewritten using rebase as 11:b6f172e64af9)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1209
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1210
  | x |  4:76be324c128b d (rewritten using rebase as 13:a1707a5b7c2c)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1211
  | |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1212
  | x  3:a82ac2b38757 c (rewritten using rebase as 10:d008e6b4d3fd)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1213
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1214
  o |  2:630d7c95eff7 x
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1215
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1216
  | x  1:488e1b7e7341 b (rewritten using rebase as 9:67e8f4a16c49)
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1217
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1218
  o  0:b173517d0057 a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1219
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1220
35993
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1221
issue5782
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1222
  $ hg strip -r 0:
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1223
  $ hg debugdrawdag <<EOF
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1224
  >       d
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1225
  >       |
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1226
  >   c1  c # replace: c -> c1
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1227
  >    \ /
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1228
  >     b
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1229
  >     |
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1230
  >     a
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1231
  > EOF
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1232
  1 new orphan changesets
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1233
  $ hg debugobsolete `hg log -T "{node}" --hidden -r 'desc("c1")'`
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1234
  obsoleted 1 changesets
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1235
  $ hg log -G -r 'a': --hidden
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1236
  *  4:76be324c128b d
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1237
  |
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1238
  | x  3:ef8a456de8fa c1 (pruned)
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1239
  | |
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1240
  x |  2:a82ac2b38757 c (rewritten using replace as 3:ef8a456de8fa)
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1241
  |/
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1242
  o  1:488e1b7e7341 b
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1243
  |
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1244
  o  0:b173517d0057 a
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1245
  
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1246
  $ hg rebase -d 0 -r 2
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1247
  rebasing 2:a82ac2b38757 "c" (c)
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1248
  $ hg log -G -r 'a': --hidden
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1249
  o  5:69ad416a4a26 c
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1250
  |
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1251
  | *  4:76be324c128b d
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1252
  | |
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1253
  | | x  3:ef8a456de8fa c1 (pruned)
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1254
  | | |
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1255
  | x |  2:a82ac2b38757 c (rewritten using replace as 3:ef8a456de8fa rewritten using rebase as 5:69ad416a4a26)
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1256
  | |/
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1257
  | o  1:488e1b7e7341 b
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1258
  |/
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1259
  o  0:b173517d0057 a
a603a570cdbe rebase: add a test case for issue5782
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 35778
diff changeset
  1260
  
35058
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1261
  $ cd ..
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35057
diff changeset
  1262
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1263
Rebase merge where successor of one parent is equal to destination (issue5198)
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1264
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1265
  $ hg init p1-succ-is-dest
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1266
  $ cd p1-succ-is-dest
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1267
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1268
  $ hg debugdrawdag <<EOF
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1269
  >   F
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1270
  >  /|
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1271
  > E D B # replace: D -> B
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1272
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1273
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1274
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1275
  1 new orphan changesets
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1276
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1277
  $ hg rebase -d B -s D
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1278
  note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1279
  rebasing 4:66f1a38021c9 "F" (F tip)
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1280
  $ hg log -G
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1281
  o    5:50e9d60b99c6 F
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1282
  |\
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1283
  | | x  4:66f1a38021c9 F (rewritten using rebase as 5:50e9d60b99c6)
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1284
  | |/|
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1285
  | o |  3:7fb047a69f22 E
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1286
  | | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1287
  | | x  2:b18e25de2cf5 D (rewritten using replace as 1:112478962961)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1288
  | |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1289
  o |  1:112478962961 B
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1290
  |/
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1291
  o  0:426bada5c675 A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1292
  
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1293
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1294
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1295
Rebase merge where successor of other parent is equal to destination
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1296
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1297
  $ hg init p2-succ-is-dest
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1298
  $ cd p2-succ-is-dest
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1299
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1300
  $ hg debugdrawdag <<EOF
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1301
  >   F
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1302
  >  /|
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1303
  > E D B # replace: E -> B
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1304
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1305
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1306
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1307
  1 new orphan changesets
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1308
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1309
  $ hg rebase -d B -s E
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1310
  note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1311
  rebasing 4:66f1a38021c9 "F" (F tip)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1312
  $ hg log -G
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1313
  o    5:aae1787dacee F
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1314
  |\
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1315
  | | x  4:66f1a38021c9 F (rewritten using rebase as 5:aae1787dacee)
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1316
  | |/|
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1317
  | | x  3:7fb047a69f22 E (rewritten using replace as 1:112478962961)
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1318
  | | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1319
  | o |  2:b18e25de2cf5 D
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1320
  | |/
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1321
  o /  1:112478962961 B
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1322
  |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1323
  o  0:426bada5c675 A
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1324
  
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1325
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1326
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1327
Rebase merge where successor of one parent is ancestor of destination
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1328
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1329
  $ hg init p1-succ-in-dest
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1330
  $ cd p1-succ-in-dest
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1331
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1332
  $ hg debugdrawdag <<EOF
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1333
  >   F C
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1334
  >  /| |
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1335
  > E D B # replace: D -> B
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1336
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1337
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1338
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1339
  1 new orphan changesets
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1340
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1341
  $ hg rebase -d C -s D
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1342
  note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1343
  rebasing 5:66f1a38021c9 "F" (F tip)
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1344
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1345
  $ hg log -G
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1346
  o    6:0913febf6439 F
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1347
  |\
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1348
  +---x  5:66f1a38021c9 F (rewritten using rebase as 6:0913febf6439)
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1349
  | | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1350
  | o |  4:26805aba1e60 C
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1351
  | | |
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1352
  o | |  3:7fb047a69f22 E
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1353
  | | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1354
  +---x  2:b18e25de2cf5 D (rewritten using replace as 1:112478962961)
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1355
  | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1356
  | o  1:112478962961 B
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1357
  |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1358
  o  0:426bada5c675 A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1359
  
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1360
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1361
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1362
Rebase merge where successor of other parent is ancestor of destination
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1363
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1364
  $ hg init p2-succ-in-dest
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1365
  $ cd p2-succ-in-dest
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1366
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1367
  $ hg debugdrawdag <<EOF
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1368
  >   F C
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1369
  >  /| |
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1370
  > E D B # replace: E -> B
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1371
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1372
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1373
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1374
  1 new orphan changesets
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1375
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1376
  $ hg rebase -d C -s E
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1377
  note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1378
  rebasing 5:66f1a38021c9 "F" (F tip)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1379
  $ hg log -G
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1380
  o    6:c6ab0cc6d220 F
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1381
  |\
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1382
  +---x  5:66f1a38021c9 F (rewritten using rebase as 6:c6ab0cc6d220)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1383
  | | |
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1384
  | o |  4:26805aba1e60 C
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1385
  | | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1386
  | | x  3:7fb047a69f22 E (rewritten using replace as 1:112478962961)
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1387
  | | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1388
  o---+  2:b18e25de2cf5 D
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1389
   / /
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1390
  o /  1:112478962961 B
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1391
  |/
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1392
  o  0:426bada5c675 A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1393
  
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1394
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1395
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1396
Rebase merge where successor of one parent is ancestor of destination
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1397
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1398
  $ hg init p1-succ-in-dest-b
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1399
  $ cd p1-succ-in-dest-b
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1400
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1401
  $ hg debugdrawdag <<EOF
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1402
  >   F C
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1403
  >  /| |
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1404
  > E D B # replace: E -> B
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1405
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1406
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1407
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1408
  1 new orphan changesets
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1409
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1410
  $ hg rebase -d C -b F
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1411
  rebasing 2:b18e25de2cf5 "D" (D)
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1412
  note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1413
  rebasing 5:66f1a38021c9 "F" (F tip)
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1414
  note: rebase of 5:66f1a38021c9 created no changes to commit
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1415
  $ hg log -G
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1416
  o  6:8f47515dda15 D
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1417
  |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1418
  | x    5:66f1a38021c9 F (pruned using rebase)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1419
  | |\
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1420
  o | |  4:26805aba1e60 C
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1421
  | | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1422
  | | x  3:7fb047a69f22 E (rewritten using replace as 1:112478962961)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1423
  | | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1424
  | x |  2:b18e25de2cf5 D (rewritten using rebase as 6:8f47515dda15)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1425
  | |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1426
  o /  1:112478962961 B
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1427
  |/
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1428
  o  0:426bada5c675 A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1429
  
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1430
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1431
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1432
Rebase merge where successor of other parent is ancestor of destination
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1433
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1434
  $ hg init p2-succ-in-dest-b
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1435
  $ cd p2-succ-in-dest-b
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1436
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1437
  $ hg debugdrawdag <<EOF
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1438
  >   F C
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1439
  >  /| |
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1440
  > E D B # replace: D -> B
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1441
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1442
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1443
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1444
  1 new orphan changesets
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1445
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1446
  $ hg rebase -d C -b F
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1447
  note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1448
  rebasing 3:7fb047a69f22 "E" (E)
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1449
  rebasing 5:66f1a38021c9 "F" (F tip)
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1450
  note: rebase of 5:66f1a38021c9 created no changes to commit
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1451
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1452
  $ hg log -G
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1453
  o  6:533690786a86 E
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33775
diff changeset
  1454
  |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1455
  | x    5:66f1a38021c9 F (pruned using rebase)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1456
  | |\
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1457
  o | |  4:26805aba1e60 C
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1458
  | | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1459
  | | x  3:7fb047a69f22 E (rewritten using rebase as 6:533690786a86)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1460
  | | |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1461
  | x |  2:b18e25de2cf5 D (rewritten using replace as 1:112478962961)
33677
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1462
  | |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1463
  o /  1:112478962961 B
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1464
  |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33667
diff changeset
  1465
  o  0:426bada5c675 A
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1466
  
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1467
  $ cd ..
29372
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1468
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1469
Rebase merge where both parents have successors in destination
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1470
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1471
  $ hg init p12-succ-in-dest
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1472
  $ cd p12-succ-in-dest
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1473
  $ hg debugdrawdag <<'EOS'
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1474
  >   E   F
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1475
  >  /|  /|  # replace: A -> C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1476
  > A B C D  # replace: B -> D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1477
  > | |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1478
  > X Y
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1479
  > EOS
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1480
  1 new orphan changesets
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1481
  $ hg rebase -r A+B+E -d F
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1482
  note: not rebasing 4:a3d17304151f "A" (A), already in destination as 0:96cc3511f894 "C" (C)
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1483
  note: not rebasing 5:b23a2cc00842 "B" (B), already in destination as 1:058c1e1fb10a "D" (D)
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1484
  rebasing 7:dac5d11c5a7d "E" (E tip)
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1485
  abort: rebasing 7:dac5d11c5a7d will include unwanted changes from 3:59c792af609c, 5:b23a2cc00842 or 2:ba2b7fa7166d, 4:a3d17304151f
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1486
  [255]
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1487
  $ cd ..
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1488
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1489
Rebase a non-clean merge. One parent has successor in destination, the other
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1490
parent moves as requested.
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1491
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1492
  $ hg init p1-succ-p2-move
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1493
  $ cd p1-succ-p2-move
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1494
  $ hg debugdrawdag <<'EOS'
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1495
  >   D Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1496
  >  /| | # replace: A -> C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1497
  > A B C # D/D = D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1498
  > EOS
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1499
  1 new orphan changesets
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1500
  $ hg rebase -r A+B+D -d Z
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1501
  note: not rebasing 0:426bada5c675 "A" (A), already in destination as 2:96cc3511f894 "C" (C)
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1502
  rebasing 1:fc2b737bb2e5 "B" (B)
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1503
  rebasing 3:b8ed089c80ad "D" (D)
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1504
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1505
  $ rm .hg/localtags
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1506
  $ hg log -G
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1507
  o  6:e4f78693cc88 D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1508
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1509
  o  5:76840d832e98 B
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1510
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1511
  o  4:50e41c1f3950 Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1512
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1513
  o  2:96cc3511f894 C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1514
  
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1515
  $ hg files -r tip
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1516
  B
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1517
  C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1518
  D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1519
  Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1520
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1521
  $ cd ..
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1522
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1523
  $ hg init p1-move-p2-succ
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1524
  $ cd p1-move-p2-succ
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1525
  $ hg debugdrawdag <<'EOS'
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1526
  >   D Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1527
  >  /| |  # replace: B -> C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1528
  > A B C  # D/D = D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1529
  > EOS
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1530
  1 new orphan changesets
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1531
  $ hg rebase -r B+A+D -d Z
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1532
  rebasing 0:426bada5c675 "A" (A)
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1533
  note: not rebasing 1:fc2b737bb2e5 "B" (B), already in destination as 2:96cc3511f894 "C" (C)
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1534
  rebasing 3:b8ed089c80ad "D" (D)
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1535
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1536
  $ rm .hg/localtags
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1537
  $ hg log -G
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1538
  o  6:1b355ed94d82 D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1539
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1540
  o  5:a81a74d764a6 A
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1541
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1542
  o  4:50e41c1f3950 Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1543
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1544
  o  2:96cc3511f894 C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1545
  
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1546
  $ hg files -r tip
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1547
  A
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1548
  C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1549
  D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1550
  Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1551
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1552
  $ cd ..
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33844
diff changeset
  1553
29372
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1554
Test that bookmark is moved and working dir is updated when all changesets have
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1555
equivalents in destination
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1556
  $ hg init rbsrepo && cd rbsrepo
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1557
  $ echo "[experimental]" > .hg/hgrc
34865
a0100f34e20b config: replace experimental.stabilization by experimental.evolution
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
  1558
  $ echo "evolution=true" >> .hg/hgrc
29372
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1559
  $ echo "rebaseskipobsolete=on" >> .hg/hgrc
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1560
  $ echo root > root && hg ci -Am root
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1561
  adding root
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1562
  $ echo a > a && hg ci -Am a
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1563
  adding a
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1564
  $ hg up 0
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1565
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1566
  $ echo b > b && hg ci -Am b
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1567
  adding b
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1568
  created new head
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1569
  $ hg rebase -r 2 -d 1
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1570
  rebasing 2:1e9a3c00cbe9 "b" (tip)
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1571
  $ hg log -r .  # working dir is at rev 3 (successor of 2)
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1572
  3:be1832deae9a b (no-eol)
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1573
  $ hg book -r 2 mybook --hidden  # rev 2 has a bookmark on it now
35611
7336ac5e786e bookmarks: add bookmarks to hidden revs if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35518
diff changeset
  1574
  bookmarking hidden changeset 1e9a3c00cbe9
35712
a1a5c3842b6f bookmarks: display the obsfate of hidden revision we create a bookmark on
Boris Feld <boris.feld@octobus.net>
parents: 35711
diff changeset
  1575
  (hidden revision '1e9a3c00cbe9' was rewritten as: be1832deae9a)
29372
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1576
  $ hg up 2 && hg log -r .  # working dir is at rev 2 again
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1577
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1578
  2:1e9a3c00cbe9 b (rewritten using rebase as 3:be1832deae9a) (no-eol)
34870
64f29fff1877 config: rename stabilization.track-operation
Boris Feld <boris.feld@octobus.net>
parents: 34867
diff changeset
  1579
  $ hg rebase -r 2 -d 3 --config experimental.evolution.track-operation=1
34009
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34008
diff changeset
  1580
  note: not rebasing 2:1e9a3c00cbe9 "b" (mybook), already in destination as 3:be1832deae9a "b" (tip)
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1581
Check that working directory and bookmark was updated to rev 3 although rev 2
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1582
was skipped
29372
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1583
  $ hg log -r .
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1584
  3:be1832deae9a b (no-eol)
29372
0b5e9a625042 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com>
parents: 29063
diff changeset
  1585
  $ hg bookmarks
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1586
     mybook                    3:be1832deae9a
32354
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32327
diff changeset
  1587
  $ hg debugobsolete --rev tip
34961
a7e49a5b3e6f obsolete: activate effect-flag by default
Boris Feld <boris.feld@octobus.net>
parents: 34872
diff changeset
  1588
  1e9a3c00cbe90d236ac05ef61efcc5e40b7412bc be1832deae9ac531caa7438b8dcf6055a122cd8e 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '4', 'operation': 'rebase', 'user': 'test'}
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1589
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1590
Obsoleted working parent and bookmark could be moved if an ancestor of working
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1591
parent gets moved:
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1592
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1593
  $ hg init $TESTTMP/ancestor-wd-move
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1594
  $ cd $TESTTMP/ancestor-wd-move
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1595
  $ hg debugdrawdag <<'EOS'
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1596
  >  E D1  # rebase: D1 -> D2
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1597
  >  | |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1598
  >  | C
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1599
  > D2 |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1600
  >  | B
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1601
  >  |/
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1602
  >  A
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1603
  > EOS
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1604
  $ hg update D1 -q
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1605
  $ hg bookmark book -i
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1606
  $ hg rebase -r B+D1 -d E
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1607
  rebasing 1:112478962961 "B" (B)
34290
4f969b9e0cf5 rebase: also include other namespaces in changeset description
Martin von Zweigbergk <martinvonz@google.com>
parents: 34286
diff changeset
  1608
  note: not rebasing 5:15ecf15e0114 "D1" (book D1 tip), already in destination as 2:0807738e0be9 "D2" (D2)
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1609
  1 new orphan changesets
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1610
  $ hg log -G -T '{desc} {bookmarks}'
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1611
  @  B book
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1612
  |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1613
  | x  D1
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1614
  | |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1615
  o |  E
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1616
  | |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
diff changeset
  1617
  | *  C
34008
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1618
  | |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1619
  o |  D2
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1620
  | |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1621
  | x  B
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1622
  |/
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1623
  o  A
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33863
diff changeset
  1624
  
34092
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1625
Rebasing a merge with one of its parent having a hidden successor
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1626
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1627
  $ hg init $TESTTMP/merge-p1-hidden-successor
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1628
  $ cd $TESTTMP/merge-p1-hidden-successor
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1629
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1630
  $ hg debugdrawdag <<'EOS'
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1631
  >  E
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1632
  >  |
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1633
  > B3 B2 # amend: B1 -> B2 -> B3
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1634
  >  |/   # B2 is hidden
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1635
  >  |  D
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1636
  >  |  |\
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1637
  >  | B1 C
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1638
  >  |/
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1639
  >  A
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1640
  > EOS
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35611
diff changeset
  1641
  1 new orphan changesets
34092
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1642
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1643
  $ eval `hg tags -T '{tag}={node}\n'`
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1644
  $ rm .hg/localtags
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1645
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1646
  $ hg rebase -r $D -d $E
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1647
  rebasing 5:9e62094e4d94 "D"
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1648
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1649
  $ hg log -G
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1650
  o    7:a699d059adcf D
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1651
  |\
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1652
  | o  6:ecc93090a95c E
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1653
  | |
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1654
  | o  4:0dc878468a23 B3
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1655
  | |
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1656
  o |  1:96cc3511f894 C
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1657
   /
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1658
  o  0:426bada5c675 A
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34085
diff changeset
  1659
  
34093
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1660
For some reasons (--hidden, rebaseskipobsolete=0, directaccess, etc.),
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1661
rebasestate may contain hidden hashes. "rebase --abort" should work regardless.
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1662
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1663
  $ hg init $TESTTMP/hidden-state1
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1664
  $ cd $TESTTMP/hidden-state1
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1665
  $ cat >> .hg/hgrc <<EOF
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1666
  > [experimental]
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1667
  > rebaseskipobsolete=0
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1668
  > EOF
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1669
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1670
  $ hg debugdrawdag <<'EOS'
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1671
  >    C
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1672
  >    |
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1673
  >  D B # prune: B, C
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1674
  >  |/  # B/D=B
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1675
  >  A
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1676
  > EOS
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1677
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1678
  $ eval `hg tags -T '{tag}={node}\n'`
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1679
  $ rm .hg/localtags
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1680
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1681
  $ hg update -q $C --hidden
35518
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35508
diff changeset
  1682
  updating to a hidden changeset 7829726be4dc
35711
35a0f6f31eef update: display the obsfate of hidden revision we update to
Boris Feld <boris.feld@octobus.net>
parents: 35709
diff changeset
  1683
  (hidden revision '7829726be4dc' is pruned)
34093
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1684
  $ hg rebase -s $B -d $D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1685
  rebasing 1:2ec65233581b "B"
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1686
  merging D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1687
  warning: conflicts while merging D! (edit, then use 'hg resolve --mark')
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1688
  unresolved conflicts (see hg resolve, then hg rebase --continue)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1689
  [1]
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1690
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1691
  $ cp -R . $TESTTMP/hidden-state2
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1692
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1693
  $ hg log -G
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1694
  @  2:b18e25de2cf5 D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1695
  |
35056
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35055
diff changeset
  1696
  | @  1:2ec65233581b B (pruned using prune)
34093
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1697
  |/
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1698
  o  0:426bada5c675 A
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1699
  
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1700
  $ hg summary
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1701
  parent: 2:b18e25de2cf5 tip
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1702
   D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1703
  parent: 1:2ec65233581b  (obsolete)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1704
   B
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1705
  branch: default
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1706
  commit: 2 modified, 1 unknown, 1 unresolved (merge)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1707
  update: (current)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1708
  phases: 3 draft
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1709
  rebase: 0 rebased, 2 remaining (rebase --continue)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1710
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1711
  $ hg rebase --abort
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1712
  rebase aborted
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1713
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1714
Also test --continue for the above case
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1715
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1716
  $ cd $TESTTMP/hidden-state2
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1717
  $ hg resolve -m
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1718
  (no more unresolved files)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1719
  continue: hg rebase --continue
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1720
  $ hg rebase --continue
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1721
  rebasing 1:2ec65233581b "B"
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1722
  rebasing 3:7829726be4dc "C" (tip)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1723
  $ hg log -G
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1724
  @  5:1964d5d5b547 C
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1725
  |
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1726
  o  4:68deb90c12a2 B
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1727
  |
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1728
  o  2:b18e25de2cf5 D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1729
  |
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1730
  o  0:426bada5c675 A
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34092
diff changeset
  1731