tests/test-rebase-obsolete.t
author Matt Harbison <matt_harbison@yahoo.com>
Sat, 31 Mar 2018 15:20:43 -0400
changeset 37250 dfb38c4850a9
parent 36034 b7e2cf114e85
child 37787 92213f6745ed
permissions -rw-r--r--
lfs: add an experimental knob to disable blob serving The use case here is the server admin may want to store the blobs elsewhere. As it stands now, the `lfs.url` config on the client side is all that enforces this (the web.allow-* permissions aren't able to block LFS blobs without also blocking normal hg traffic). The real solution to this is to implement the 'verify' action on the client and server, but that's not a near term goal. Whether this is useful in its own right, and should be promoted out of experimental at some point is TBD. Since the other two tests that deal with LFS and `hg serve` are already complex and have #testcases, this seems like a good time to start a new test dedicated to access checks against the server. Instead of conditionally wrapping the wire protocol handler, I put this in the handler because I'd still like to bring the annotations in from the evolve extension in order to set up the wrapping. The 400 status probably isn't great, but that's what it would be for existing `hg serve` instances without support for serving blobs.
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]
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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=
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 34297
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
  |/
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
35017
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
  |/
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
35017
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
31304
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
35017
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
  |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
   211
  rebasing 8:8877864f1edb "B"
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
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
35017
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'}
33796
f078d7358e90 revset: remane divergent into contentdivergent
Boris Feld <boris.feld@octobus.net>
parents: 33794
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
  
31304
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())'
35522
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35512
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)
31304
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"
31306
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   288
  $ hg log -G
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   289
  o  16:294a2b93eb4d C
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   290
  |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   291
  o  15:627d46148090 D
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   292
  |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   293
  | o  12:462a34d07e59 B
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   294
  | |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   295
  | o  11:4596109a6a43 D
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   296
  | |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   297
  | o  7:02de42196ebe H
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   298
  | |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   299
  +---o  6:eea13746799a G
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   300
  | |/
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   301
  | o  5:24b6387c8c8c F
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   302
  | |
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   303
  o |  4:9520eea781bc E
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   304
  |/
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
   305
  | @  1:42ccdea3bb16 B (pruned using rebase)
31306
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   306
  |/
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   307
  o  0:cd010b8cd998 A
f5c71e98f0f7 rebase: unhide original working directory node as well (issue5219)
Martin von Zweigbergk <martinvonz@google.com>
parents: 31304
diff changeset
   308
  
31304
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
  |/
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
35017
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
35078
852620fe4ca7 tests: clarify a comment in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35017
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: 35017
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
35080
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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: 35079
diff changeset
   376
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   378
  |/|
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   380
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   382
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   384
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   386
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   388
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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"
35080
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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: 35079
diff changeset
   396
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   398
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   400
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   402
  |\|
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   404
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   406
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   408
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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
  |/
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
35017
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
  |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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'
30011
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
  |
30011
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
  |/
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
33704
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
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: 33703
diff changeset
   516
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
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: 33703
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: 33703
diff changeset
   519
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
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: 33703
diff changeset
   521
  >   F
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
diff changeset
   522
  >  /|
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
diff changeset
   523
  > C E
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
diff changeset
   524
  > | |
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
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: 33703
diff changeset
   526
  >  \|/
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
diff changeset
   527
  >   A
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
diff changeset
   528
  > EOF
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
diff changeset
   529
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
   530
  $ hg rebase -d G -r 'B + D + F'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
   531
  rebasing 1:112478962961 "B" (B)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
   532
  rebasing 2:b18e25de2cf5 "D" (D)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
   533
  rebasing 6:f15c3adaf214 "F" (F tip)
33810
19f495fef0a3 rebase: change "result would have 3 parent" error message (BC)
Jun Wu <quark@fb.com>
parents: 33807
diff changeset
   534
  abort: cannot rebase 6:f15c3adaf214 without moving at least one of its parents
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
   535
  [255]
33704
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
diff changeset
   536
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
diff changeset
   537
  $ cd ..
855a1856466d tests: demonstrate crash when trying to rebase merge without its parents
Martin von Zweigbergk <martinvonz@google.com>
parents: 33703
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: 34297
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
  |/
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  | |\
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
   / /
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
35522
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35512
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
  |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  |/
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  | |\
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
   / /
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
  |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  |/
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  |/
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  |/
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
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
  | |\
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
   / /
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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: 34027
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)'
35522
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35512
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
35080
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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: 35079
diff changeset
   749
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   751
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   753
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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)'
35522
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35512
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)'
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35081
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
35080
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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: 35079
diff changeset
   778
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   780
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   782
  | |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   784
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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::"
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
   816
  rebasing 4:ff2c4d47b71d "C"
33863
30573b3d2ebc rebase: move obsoleted not rebased messages earlier (BC)
Jun Wu <quark@fb.com>
parents: 33810
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
35080
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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: 35079
diff changeset
   845
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   847
  |/
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   849
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   851
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
diff changeset
   853
  |
0564e7c7f4cd tests: add a couple of 'hg log' calls in test-rebase-obsolete.t
Denis Laxalde <denis@laxalde.org>
parents: 35079
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: 35079
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
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
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
35522
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35512
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
diff changeset
   893
  @  14:73568ab6879d bar foo
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   894
  |
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
  | |/
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
33695
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
diff changeset
   922
  @  14:73568ab6879d bar foo
27746
f0e9f38d250f rebase: prevent creating divergence
Laurent Charignon <lcharignon@fb.com>
parents: 27577
diff changeset
   923
  |
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
  | |/
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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"
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
33714
2194a8723138 evolution: rename divergent to content-divergent
Boris Feld <boris.feld@octobus.net>
parents: 33704
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
diff changeset
   956
  $ hg log -G -r 16::
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
diff changeset
   985
  $ hg log -G -r 16::
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
  |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  |
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
  |
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
  | |
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
  |/
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
  ~
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
diff changeset
   999
  $ hg rebase -r ".^^ + .^ + ." -d 18
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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
34102
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
diff changeset
  1010
  rebasing 19:b82fb57ea638 "willconflict second version"
e8a7c1a0565a cmdutil: remove the redundant commit during amend
Saurabh Singh <singhsrb@fb.com>
parents: 34027
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: 34027
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
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1016
-------------------------------------------
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1017
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
diff changeset
  1020
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1022
  $ cd divergence
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1024
  > [extensions]
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1025
  > strip =
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1026
  > [alias]
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1028
  > [templates]
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1030
  > EOF
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1031
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1033
  >   e   f
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1034
  >   |   |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1036
  >    \ /
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1037
  >     c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1038
  >     |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1039
  >   x b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1040
  >    \|
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1041
  >     a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1044
  $ hg log -G -r 'a'::
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
  1045
  *  7:1143e9adc121 f
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1046
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1048
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1050
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1052
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1054
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1056
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1058
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1060
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1061
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
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: 35080
diff changeset
  1065
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
diff changeset
  1074
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1076
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1078
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1080
  |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
  1081
  | *  7:1143e9adc121 f
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1082
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1084
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1086
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1088
  | |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1090
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1092
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1094
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1096
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1098
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
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: 35080
diff changeset
  1102
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
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: 35080
diff changeset
  1106
  [255]
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
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: 35080
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
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
diff changeset
  1115
  |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
  1116
  *  9:e2b36ea9a0a0 d (content-divergent)
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1117
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1119
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1121
  | |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
  1122
  | | *  6:d60ebfa0f1cb e (orphan)
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1123
  | | |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
  1124
  | | *  5:027ad6c5830d d' (orphan content-divergent)
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1125
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1127
  | |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1129
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1131
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1133
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1135
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1137
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1139
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
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: 35080
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
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1146
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1148
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1150
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1152
  >       g
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1153
  >       |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1154
  >   f   e
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1155
  >   |   |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1157
  >    \ /
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1158
  >     c
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1159
  >     |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1160
  >   x b
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1161
  >    \|
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1162
  >     a
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1165
  $ hg log -G -r 'a':
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
  1166
  *  8:2876ce66c6eb g
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1167
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1169
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1171
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1173
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1175
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1177
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1179
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1181
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1183
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
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: 35080
diff changeset
  1193
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1195
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1197
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1199
  |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1201
  |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
  1202
  | *  8:2876ce66c6eb g
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1203
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1205
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1207
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1209
  | | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1211
  | |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1213
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1215
  | |
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1217
  |/
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
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: 35080
diff changeset
  1219
  
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1220
36032
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
  
35081
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1261
  $ cd ..
a68c3420be41 rebase: exclude descendants of obsoletes w/o a successor in dest (issue5300)
Denis Laxalde <denis@laxalde.org>
parents: 35080
diff changeset
  1262
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1264
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1266
  $ cd p1-succ-is-dest
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1267
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1269
  >   F
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1270
  >  /|
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1272
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1273
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1276
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1277
  $ hg rebase -d B -s D
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1278
  note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1282
  |\
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
  | |/|
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1286
  | | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1287
  | | x  2:b18e25de2cf5 D (rewritten using replace as 1:112478962961)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1288
  | |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1289
  o |  1:112478962961 B
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1290
  |/
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1292
  
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1293
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1294
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1296
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1299
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1301
  >   F
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1302
  >  /|
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1304
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1305
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1308
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1309
  $ hg rebase -d B -s E
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1310
  note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1311
  rebasing 4:66f1a38021c9 "F" (F tip)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1312
  $ hg log -G
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1313
  o    5:aae1787dacee F
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1314
  |\
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1315
  | | x  4:66f1a38021c9 F (rewritten using rebase as 5:aae1787dacee)
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1316
  | |/|
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1317
  | | x  3:7fb047a69f22 E (rewritten using replace as 1:112478962961)
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1318
  | | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1319
  | o |  2:b18e25de2cf5 D
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1320
  | |/
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1321
  o /  1:112478962961 B
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1322
  |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1323
  o  0:426bada5c675 A
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1324
  
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1325
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1326
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1328
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1331
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1334
  >  /| |
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1336
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1337
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1340
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1341
  $ hg rebase -d C -s D
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1342
  note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1343
  rebasing 5:66f1a38021c9 "F" (F tip)
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1344
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1345
  $ hg log -G
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1346
  o    6:0913febf6439 F
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1347
  |\
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1348
  +---x  5:66f1a38021c9 F (rewritten using rebase as 6:0913febf6439)
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1349
  | | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1350
  | o |  4:26805aba1e60 C
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1351
  | | |
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1352
  o | |  3:7fb047a69f22 E
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1353
  | | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1354
  +---x  2:b18e25de2cf5 D (rewritten using replace as 1:112478962961)
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1355
  | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1356
  | o  1:112478962961 B
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1357
  |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1359
  
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1360
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1361
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1363
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1366
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1369
  >  /| |
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1371
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1372
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1375
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1376
  $ hg rebase -d C -s E
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1377
  note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1378
  rebasing 5:66f1a38021c9 "F" (F tip)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1379
  $ hg log -G
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1380
  o    6:c6ab0cc6d220 F
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1381
  |\
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1382
  +---x  5:66f1a38021c9 F (rewritten using rebase as 6:c6ab0cc6d220)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1383
  | | |
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1384
  | o |  4:26805aba1e60 C
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1385
  | | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1386
  | | x  3:7fb047a69f22 E (rewritten using replace as 1:112478962961)
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1387
  | | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1388
  o---+  2:b18e25de2cf5 D
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1389
   / /
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1390
  o /  1:112478962961 B
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1391
  |/
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1393
  
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1394
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1395
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1397
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1400
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1403
  >  /| |
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1405
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1406
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1409
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1410
  $ hg rebase -d C -b F
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1411
  rebasing 2:b18e25de2cf5 "D" (D)
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1412
  note: not rebasing 3:7fb047a69f22 "E" (E), already in destination as 1:112478962961 "B" (B)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1413
  rebasing 5:66f1a38021c9 "F" (F tip)
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1414
  note: rebase of 5:66f1a38021c9 created no changes to commit
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1417
  |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1418
  | x    5:66f1a38021c9 F (pruned using rebase)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1419
  | |\
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1421
  | | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1422
  | | x  3:7fb047a69f22 E (rewritten using replace as 1:112478962961)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1423
  | | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1424
  | x |  2:b18e25de2cf5 D (rewritten using rebase as 6:8f47515dda15)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1425
  | |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1426
  o /  1:112478962961 B
29063
8ede973597fd rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org>
parents: 28686
diff changeset
  1427
  |/
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1429
  
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1430
  $ cd ..
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1431
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1433
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1436
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
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: 33695
diff changeset
  1439
  >  /| |
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1441
  >  \|/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1442
  >   A
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1445
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1446
  $ hg rebase -d C -b F
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1447
  note: not rebasing 2:b18e25de2cf5 "D" (D), already in destination as 1:112478962961 "B" (B)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1449
  rebasing 5:66f1a38021c9 "F" (F tip)
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1450
  note: rebase of 5:66f1a38021c9 created no changes to commit
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1451
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1452
  $ hg log -G
33807
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1453
  o  6:533690786a86 E
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33796
diff changeset
  1454
  |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1455
  | x    5:66f1a38021c9 F (pruned using rebase)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1456
  | |\
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1458
  | | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1459
  | | x  3:7fb047a69f22 E (rewritten using rebase as 6:533690786a86)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1460
  | | |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1461
  | x |  2:b18e25de2cf5 D (rewritten using replace as 1:112478962961)
33703
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
diff changeset
  1462
  | |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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: 33695
diff changeset
  1464
  |/
644dddccc265 tests: demonstrate broken rebase of merge with p1's successor in dest
Martin von Zweigbergk <martinvonz@google.com>
parents: 33695
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
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
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: 33865
diff changeset
  1470
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1471
  $ hg init p12-succ-in-dest
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1472
  $ cd p12-succ-in-dest
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1473
  $ hg debugdrawdag <<'EOS'
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1474
  >   E   F
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1475
  >  /|  /|  # replace: A -> C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1476
  > A B C D  # replace: B -> D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1477
  > | |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1478
  > X Y
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
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
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1481
  $ hg rebase -r A+B+E -d F
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
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: 34026
diff changeset
  1483
  note: not rebasing 5:b23a2cc00842 "B" (B), already in destination as 1:058c1e1fb10a "D" (D)
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1484
  rebasing 7:dac5d11c5a7d "E" (E tip)
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
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: 33865
diff changeset
  1486
  [255]
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1487
  $ cd ..
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1488
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
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: 33865
diff changeset
  1490
parent moves as requested.
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1491
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1492
  $ hg init p1-succ-p2-move
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1493
  $ cd p1-succ-p2-move
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1494
  $ hg debugdrawdag <<'EOS'
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1495
  >   D Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1496
  >  /| | # replace: A -> C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1497
  > A B C # D/D = D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
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
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1500
  $ hg rebase -r A+B+D -d Z
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1501
  note: not rebasing 0:426bada5c675 "A" (A), already in destination as 2:96cc3511f894 "C" (C)
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1502
  rebasing 1:fc2b737bb2e5 "B" (B)
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1503
  rebasing 3:b8ed089c80ad "D" (D)
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1504
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1505
  $ rm .hg/localtags
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1506
  $ hg log -G
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1507
  o  6:e4f78693cc88 D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1508
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1509
  o  5:76840d832e98 B
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1510
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1511
  o  4:50e41c1f3950 Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1512
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1513
  o  2:96cc3511f894 C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1514
  
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1515
  $ hg files -r tip
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1516
  B
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1517
  C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1518
  D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1519
  Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1520
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1521
  $ cd ..
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1522
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1523
  $ hg init p1-move-p2-succ
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1524
  $ cd p1-move-p2-succ
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1525
  $ hg debugdrawdag <<'EOS'
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1526
  >   D Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1527
  >  /| |  # replace: B -> C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1528
  > A B C  # D/D = D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
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
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1531
  $ hg rebase -r B+A+D -d Z
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1532
  rebasing 0:426bada5c675 "A" (A)
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1533
  note: not rebasing 1:fc2b737bb2e5 "B" (B), already in destination as 2:96cc3511f894 "C" (C)
33882
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1534
  rebasing 3:b8ed089c80ad "D" (D)
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1535
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1536
  $ rm .hg/localtags
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1537
  $ hg log -G
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1538
  o  6:1b355ed94d82 D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1539
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1540
  o  5:a81a74d764a6 A
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1541
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1542
  o  4:50e41c1f3950 Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1543
  |
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1544
  o  2:96cc3511f894 C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1545
  
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1546
  $ hg files -r tip
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1547
  A
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1548
  C
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1549
  D
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1550
  Z
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1551
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
diff changeset
  1552
  $ cd ..
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33865
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: 35522
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
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
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
34027
79ab5369d55a rebase: use _ctxdesc in one more place
Jun Wu <quark@fb.com>
parents: 34026
diff changeset
  1580
  note: not rebasing 2:1e9a3c00cbe9 "b" (mybook), already in destination as 3:be1832deae9a "b" (tip)
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
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: 33882
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 .
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
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
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1586
     mybook                    3:be1832deae9a
32393
f432897a9f49 obsmarker: add an experimental flag controlling "operation" recording
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32366
diff changeset
  1587
  $ hg debugobsolete --rev tip
35017
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'}
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1589
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
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: 33882
diff changeset
  1591
parent gets moved:
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1592
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
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: 33882
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: 33882
diff changeset
  1595
  $ hg debugdrawdag <<'EOS'
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
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: 33882
diff changeset
  1597
  >  | |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1598
  >  | C
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1599
  > D2 |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1600
  >  | B
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1601
  >  |/
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1602
  >  A
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1603
  > EOS
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1604
  $ hg update D1 -q
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1605
  $ hg bookmark book -i
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
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: 33882
diff changeset
  1607
  rebasing 1:112478962961 "B" (B)
34297
4f969b9e0cf5 rebase: also include other namespaces in changeset description
Martin von Zweigbergk <martinvonz@google.com>
parents: 34293
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
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
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: 33882
diff changeset
  1611
  @  B book
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1612
  |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1613
  | x  D1
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1614
  | |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1615
  o |  E
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1616
  | |
35512
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35400
diff changeset
  1617
  | *  C
34026
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1618
  | |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1619
  o |  D2
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1620
  | |
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1621
  | x  B
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1622
  |/
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1623
  o  A
9422107a6b64 rebase: move working parent and bookmark for obsoleted revs (BC)
Jun Wu <quark@fb.com>
parents: 33882
diff changeset
  1624
  
34107
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
diff changeset
  1626
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
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: 34102
diff changeset
  1629
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
diff changeset
  1631
  >  E
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
diff changeset
  1632
  >  |
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
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: 34102
diff changeset
  1635
  >  |  D
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
diff changeset
  1636
  >  |  |\
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
diff changeset
  1637
  >  | B1 C
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
diff changeset
  1638
  >  |/
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
diff changeset
  1639
  >  A
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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
34107
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
diff changeset
  1642
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
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: 34102
diff changeset
  1645
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
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: 34102
diff changeset
  1648
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
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: 34102
diff changeset
  1651
  |\
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
diff changeset
  1653
  | |
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
diff changeset
  1655
  | |
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
diff changeset
  1657
   /
8a8e7a94ba07 rebase: do not crash rebasing merge with a parent having hidden successor
Jun Wu <quark@fb.com>
parents: 34102
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: 34102
diff changeset
  1659
  
34108
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
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: 34107
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: 34107
diff changeset
  1662
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1663
  $ hg init $TESTTMP/hidden-state1
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1664
  $ cd $TESTTMP/hidden-state1
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1665
  $ cat >> .hg/hgrc <<EOF
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1666
  > [experimental]
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1667
  > rebaseskipobsolete=0
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1668
  > EOF
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1669
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1670
  $ hg debugdrawdag <<'EOS'
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1671
  >    C
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1672
  >    |
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1673
  >  D B # prune: B, C
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1674
  >  |/  # B/D=B
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1675
  >  A
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1676
  > EOS
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1677
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1678
  $ eval `hg tags -T '{tag}={node}\n'`
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1679
  $ rm .hg/localtags
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1680
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1681
  $ hg update -q $C --hidden
35522
02fdb8c018aa update: support updating to hidden cset if directaccess config is set
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35512
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)
34108
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1684
  $ hg rebase -s $B -d $D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1685
  rebasing 1:2ec65233581b "B"
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1686
  merging D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
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: 34107
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: 34107
diff changeset
  1689
  [1]
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1690
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1691
  $ cp -R . $TESTTMP/hidden-state2
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1692
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1693
  $ hg log -G
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1694
  @  2:b18e25de2cf5 D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1695
  |
35079
235d58aa723e tests: conditionally display obsfate in test-rebase-obsolete log output
Denis Laxalde <denis@laxalde.org>
parents: 35078
diff changeset
  1696
  | @  1:2ec65233581b B (pruned using prune)
34108
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1697
  |/
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1698
  o  0:426bada5c675 A
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1699
  
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1700
  $ hg summary
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1701
  parent: 2:b18e25de2cf5 tip
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1702
   D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1703
  parent: 1:2ec65233581b  (obsolete)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1704
   B
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1705
  branch: default
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
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: 34107
diff changeset
  1707
  update: (current)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1708
  phases: 3 draft
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1709
  rebase: 0 rebased, 2 remaining (rebase --continue)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1710
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1711
  $ hg rebase --abort
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1712
  rebase aborted
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1713
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1714
Also test --continue for the above case
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1715
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1716
  $ cd $TESTTMP/hidden-state2
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1717
  $ hg resolve -m
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1718
  (no more unresolved files)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1719
  continue: hg rebase --continue
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1720
  $ hg rebase --continue
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1721
  rebasing 1:2ec65233581b "B"
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1722
  rebasing 3:7829726be4dc "C" (tip)
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1723
  $ hg log -G
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1724
  @  5:1964d5d5b547 C
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1725
  |
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1726
  o  4:68deb90c12a2 B
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1727
  |
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1728
  o  2:b18e25de2cf5 D
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1729
  |
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1730
  o  0:426bada5c675 A
15ec3119d500 rebase: use unfiltered repo when loading state
Jun Wu <quark@fb.com>
parents: 34107
diff changeset
  1731