tests/test-rebase-newancestor.t
author Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
Tue, 02 Jul 2019 12:59:58 -0400
changeset 42621 99ebde4fec99
parent 42565 4764e8436b2a
child 44341 77bb38be00ea
permissions -rw-r--r--
commit: improve the files field of changelog for merges Currently, the files list of merge commits repeats all the deletions (either actual deletions, or files that got renamed) that happened between base and p2 of the merge. If p2 is the main branch, the list can easily be much bigger than the change being merged. This results in various problems worth improving: - changelog is bigger than necessary - `hg log directory` lists many unrelated merge commits, and `hg log -v -r commit` frequently fills multiple screens worth of files - it possibly slows down adjustlinkrev, by forcing it to read more manifests, and that function can certainly be a bottleneck - the server side of pulls can waste a lot of time simply opening the filelogs for pointless files (the constant factors for opening even a tiny filelog is apparently pretty bad) So stop listing such files as described in the code. Impacted merge commits and their descendants get a different hash than they would have without this. This doesn't seem problematic, except for convert. The previous commit helped with that in the hg->hg case (but if you do svn->hg twice from scratch, hashes can still change). The rest of the description is numbers. I don't have much to report, because recreating the files list of existing repositories is not easy: - debugupgradeformat and bundle/unbundle don't recreate the list - export/import tends to choke quickly applying patches or on description that contain diffs, - merge commits from the convert extension don't have the right files list for reasons orthogonal to the current commit - replaying the merge with hg update/hg merge/hg revert --all/hg commit can end up failing in hg revert - I wasn't sure that using debugsetparents + debugrebuilddirstate would really build the right thing I measured commit time before and after this change, in a case with no files filtered out, several files filtered out (no difference) and 5k files filtered out (+1% time). Recreating the 100 more recent merges in a private repo, the concatenated uncompressed files lists goes from 1.12MB to 0.52MB. Excluding 3 merges that are not representative, then the size goes from 570k to 15k. I converted part of mozilla-central, and observed file list shrinking quite a bit too, starting at the very first merge, 733641d9feaf, going from 550 files to 10 files (although they have relatively few merges, so they probably wouldn't care). Differential Revision: https://phab.mercurial-scm.org/D6613
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
     1
  $ cat >> $HGRCPATH <<EOF
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
     2
  > [extensions]
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
     3
  > rebase=
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
     4
  > drawdag=$TESTDIR/drawdag.py
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
     5
  > [alias]
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
     6
  > tglog = log -G --template "{rev}: {node|short} '{desc}' {branches}\n"
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
     7
  > EOF
11198
b345b1cc124f rebase: use helpers.sh in tests
Matt Mackall <mpm@selenic.com>
parents: 9815
diff changeset
     8
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
     9
  $ hg init repo
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    10
  $ cd repo
9815
49efeed49c94 rebase: make sure the newancestor is used during the whole update
Christian Boos <cboos@bct-technology.com>
parents:
diff changeset
    11
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    12
  $ echo A > a
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    13
  $ echo >> a
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    14
  $ hg ci -Am A
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    15
  adding a
9815
49efeed49c94 rebase: make sure the newancestor is used during the whole update
Christian Boos <cboos@bct-technology.com>
parents:
diff changeset
    16
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    17
  $ echo B > a
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    18
  $ echo >> a
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    19
  $ hg ci -m B
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    20
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    21
  $ echo C > a
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    22
  $ echo >> a
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    23
  $ hg ci -m C
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    24
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    25
  $ hg up -q -C 0
9815
49efeed49c94 rebase: make sure the newancestor is used during the whole update
Christian Boos <cboos@bct-technology.com>
parents:
diff changeset
    26
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    27
  $ echo D >> a
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    28
  $ hg ci -Am AD
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    29
  created new head
9815
49efeed49c94 rebase: make sure the newancestor is used during the whole update
Christian Boos <cboos@bct-technology.com>
parents:
diff changeset
    30
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    31
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
    32
  @  3: 3878212183bd 'AD'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    33
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
    34
  | o  2: 30ae917c0e4f 'C'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    35
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
    36
  | o  1: 0f4f7cb4f549 'B'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    37
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
    38
  o  0: 1e635d440a73 'A'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    39
  
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    40
  $ hg rebase -s 1 -d 3
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
    41
  rebasing 1:0f4f7cb4f549 "B"
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    42
  merging a
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
    43
  rebasing 2:30ae917c0e4f "C"
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    44
  merging a
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
    45
  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/0f4f7cb4f549-82b3b163-rebase.hg
9815
49efeed49c94 rebase: make sure the newancestor is used during the whole update
Christian Boos <cboos@bct-technology.com>
parents:
diff changeset
    46
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    47
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
    48
  o  3: 25773bc4b4b0 'C'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    49
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
    50
  o  2: c09015405f75 'B'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    51
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
    52
  @  1: 3878212183bd 'AD'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    53
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
    54
  o  0: 1e635d440a73 'A'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    55
  
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12640
diff changeset
    56
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12640
diff changeset
    57
  $ cd ..
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    58
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    59
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    60
Test rebasing of merges with ancestors of the rebase destination - a situation
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    61
that often happens when trying to recover from repeated merging with a mainline
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    62
branch.
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    63
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    64
The test case creates a dev branch that contains a couple of merges from the
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    65
default branch. When rebasing to the default branch, these merges would be
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    66
merges with ancestors on the same branch. The merges _could_ contain some
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    67
interesting conflict resolutions or additional changes in the merge commit, but
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    68
that is mixed up with the actual merge stuff and there is in general no way to
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    69
separate them.
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    70
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    71
Note: The dev branch contains _no_ changes to f-default. It might be unclear
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    72
how rebasing of ancestor merges should be handled, but the current behavior
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    73
with spurious prompts for conflicts in files that didn't change seems very
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    74
wrong.
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    75
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    76
  $ hg init ancestor-merge
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    77
  $ cd ancestor-merge
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    78
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    79
  $ touch f-default
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    80
  $ hg ci -Aqm 'default: create f-default'
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    81
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    82
  $ hg branch -q dev
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    83
  $ hg ci -qm 'dev: create branch'
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    84
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    85
  $ echo stuff > f-dev
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    86
  $ hg ci -Aqm 'dev: f-dev stuff'
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    87
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    88
  $ hg up -q default
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    89
  $ echo stuff > f-default
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    90
  $ hg ci -m 'default: f-default stuff'
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    91
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    92
  $ hg up -q dev
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    93
  $ hg merge -q default
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    94
  $ hg ci -m 'dev: merge default'
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    95
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    96
  $ hg up -q default
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    97
  $ hg rm f-default
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    98
  $ hg ci -m 'default: remove f-default'
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
    99
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   100
  $ hg up -q dev
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   101
  $ hg merge -q default
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   102
  $ hg ci -m 'dev: merge default'
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   103
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   104
  $ hg up -q default
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   105
  $ echo stuff > f-other
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   106
  $ hg ci -Aqm 'default: f-other stuff'
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   107
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   108
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   109
  @  7: e08089805d82 'default: f-other stuff'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   110
  |
42621
99ebde4fec99 commit: improve the files field of changelog for merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42565
diff changeset
   111
  | o  6: 010ced67e558 'dev: merge default' dev
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   112
  |/|
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   113
  o |  5: 462860db70a1 'default: remove f-default'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   114
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   115
  | o  4: 4b019212aaf6 'dev: merge default' dev
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   116
  |/|
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   117
  o |  3: f157ecfd2b6b 'default: f-default stuff'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   118
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   119
  | o  2: ec2c14fb2984 'dev: f-dev stuff' dev
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   120
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   121
  | o  1: 1d1a643d390e 'dev: create branch' dev
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   122
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   123
  o  0: e90e8eb90b6f 'default: create f-default'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   124
  
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   125
  $ hg clone -qU . ../ancestor-merge-2
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   126
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   127
Full rebase all the way back from branching point:
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   128
27598
97e39f70fb47 tests: explicitly request changed version in test-rebase-newancestor.t
Siddharth Agarwal <sid0@fb.com>
parents: 27163
diff changeset
   129
  $ hg rebase -r 'only(dev,default)' -d default --config ui.interactive=True << EOF
97e39f70fb47 tests: explicitly request changed version in test-rebase-newancestor.t
Siddharth Agarwal <sid0@fb.com>
parents: 27163
diff changeset
   130
  > c
97e39f70fb47 tests: explicitly request changed version in test-rebase-newancestor.t
Siddharth Agarwal <sid0@fb.com>
parents: 27163
diff changeset
   131
  > EOF
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   132
  rebasing 1:1d1a643d390e "dev: create branch"
40865
4edd427f34c1 rebase: clarify that commits that become empty are skipped
Martin von Zweigbergk <martinvonz@google.com>
parents: 40864
diff changeset
   133
  note: not rebasing 1:1d1a643d390e "dev: create branch", its destination already has all its changes
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   134
  rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   135
  rebasing 4:4b019212aaf6 "dev: merge default"
39285
a3fd84f4fb38 filemerge: fix the wrong placements of messages in prompt
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39284
diff changeset
   136
  file 'f-default' was deleted in local [dest] but was modified in other [source].
42565
4764e8436b2a filemerge: make last line of prompts <40 english chars (issue6158)
Kyle Lippincott <spectral@google.com>
parents: 40865
diff changeset
   137
  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
4764e8436b2a filemerge: make last line of prompts <40 english chars (issue6158)
Kyle Lippincott <spectral@google.com>
parents: 40865
diff changeset
   138
  What do you want to do? c
42621
99ebde4fec99 commit: improve the files field of changelog for merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42565
diff changeset
   139
  rebasing 6:010ced67e558 "dev: merge default"
99ebde4fec99 commit: improve the files field of changelog for merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42565
diff changeset
   140
  saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-4a6f6d17-rebase.hg
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   141
  $ hg tglog
42621
99ebde4fec99 commit: improve the files field of changelog for merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42565
diff changeset
   142
  o  6: de147e4f69cf 'dev: merge default'
23426
19ebd2f88fc7 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 23408
diff changeset
   143
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   144
  o  5: eda7b7f46f5d 'dev: merge default'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   145
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   146
  o  4: 3e075b1c0a40 'dev: f-dev stuff'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   147
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   148
  @  3: e08089805d82 'default: f-other stuff'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   149
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   150
  o  2: 462860db70a1 'default: remove f-default'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   151
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   152
  o  1: f157ecfd2b6b 'default: f-default stuff'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   153
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   154
  o  0: e90e8eb90b6f 'default: create f-default'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   155
  
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   156
Grafty cherry picking rebasing:
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   157
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   158
  $ cd ../ancestor-merge-2
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   159
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   160
  $ hg phase -fdr0:
27598
97e39f70fb47 tests: explicitly request changed version in test-rebase-newancestor.t
Siddharth Agarwal <sid0@fb.com>
parents: 27163
diff changeset
   161
  $ hg rebase -r 'children(only(dev,default))' -d default --config ui.interactive=True << EOF
97e39f70fb47 tests: explicitly request changed version in test-rebase-newancestor.t
Siddharth Agarwal <sid0@fb.com>
parents: 27163
diff changeset
   162
  > c
97e39f70fb47 tests: explicitly request changed version in test-rebase-newancestor.t
Siddharth Agarwal <sid0@fb.com>
parents: 27163
diff changeset
   163
  > EOF
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   164
  rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   165
  rebasing 4:4b019212aaf6 "dev: merge default"
39285
a3fd84f4fb38 filemerge: fix the wrong placements of messages in prompt
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 39284
diff changeset
   166
  file 'f-default' was deleted in local [dest] but was modified in other [source].
42565
4764e8436b2a filemerge: make last line of prompts <40 english chars (issue6158)
Kyle Lippincott <spectral@google.com>
parents: 40865
diff changeset
   167
  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
4764e8436b2a filemerge: make last line of prompts <40 english chars (issue6158)
Kyle Lippincott <spectral@google.com>
parents: 40865
diff changeset
   168
  What do you want to do? c
42621
99ebde4fec99 commit: improve the files field of changelog for merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42565
diff changeset
   169
  rebasing 6:010ced67e558 "dev: merge default"
99ebde4fec99 commit: improve the files field of changelog for merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42565
diff changeset
   170
  saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-827d7a44-rebase.hg
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   171
  $ hg tglog
42621
99ebde4fec99 commit: improve the files field of changelog for merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42565
diff changeset
   172
  o  7: de147e4f69cf 'dev: merge default'
23426
19ebd2f88fc7 merge with stable
Matt Mackall <mpm@selenic.com>
parents: 23408
diff changeset
   173
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   174
  o  6: eda7b7f46f5d 'dev: merge default'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   175
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   176
  o  5: 3e075b1c0a40 'dev: f-dev stuff'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   177
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   178
  o  4: e08089805d82 'default: f-other stuff'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   179
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   180
  o  3: 462860db70a1 'default: remove f-default'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   181
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   182
  o  2: f157ecfd2b6b 'default: f-default stuff'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   183
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   184
  | o  1: 1d1a643d390e 'dev: create branch' dev
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   185
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   186
  o  0: e90e8eb90b6f 'default: create f-default'
23406
65f215ea3e8e tests: add test for rebasing merges with ancestors of the rebase destination
Mads Kiilerich <madski@unity3d.com>
parents: 20117
diff changeset
   187
  
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   188
  $ cd ..
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   189
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   190
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   191
Test order of parents of rebased merged with un-rebased changes as p1.
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   192
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   193
  $ hg init parentorder
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   194
  $ cd parentorder
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   195
  $ touch f
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   196
  $ hg ci -Aqm common
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   197
  $ touch change
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   198
  $ hg ci -Aqm change
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   199
  $ touch target
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   200
  $ hg ci -Aqm target
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   201
  $ hg up -qr 0
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   202
  $ touch outside
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   203
  $ hg ci -Aqm outside
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   204
  $ hg merge -qr 1
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   205
  $ hg ci -m 'merge p1 3=outside p2 1=ancestor'
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   206
  $ hg par
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   207
  changeset:   4:6990226659be
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   208
  tag:         tip
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   209
  parent:      3:f59da8fc0fcf
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   210
  parent:      1:dd40c13f7a6f
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   211
  user:        test
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   212
  date:        Thu Jan 01 00:00:00 1970 +0000
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   213
  summary:     merge p1 3=outside p2 1=ancestor
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   214
  
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   215
  $ hg up -qr 1
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   216
  $ hg merge -qr 3
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   217
  $ hg ci -qm 'merge p1 1=ancestor p2 3=outside'
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   218
  $ hg par
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   219
  changeset:   5:a57575f79074
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   220
  tag:         tip
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   221
  parent:      1:dd40c13f7a6f
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   222
  parent:      3:f59da8fc0fcf
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   223
  user:        test
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   224
  date:        Thu Jan 01 00:00:00 1970 +0000
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   225
  summary:     merge p1 1=ancestor p2 3=outside
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   226
  
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   227
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   228
  @    5: a57575f79074 'merge p1 1=ancestor p2 3=outside'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   229
  |\
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   230
  +---o  4: 6990226659be 'merge p1 3=outside p2 1=ancestor'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   231
  | |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   232
  | o  3: f59da8fc0fcf 'outside'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   233
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   234
  +---o  2: a60552eb93fb 'target'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   235
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   236
  o |  1: dd40c13f7a6f 'change'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   237
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   238
  o  0: 02f0f58d5300 'common'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   239
  
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   240
  $ hg rebase -r 4 -d 2
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   241
  rebasing 4:6990226659be "merge p1 3=outside p2 1=ancestor"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   242
  saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/6990226659be-4d67a0d3-rebase.hg
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   243
  $ hg tip
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   244
  changeset:   5:cca50676b1c5
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   245
  tag:         tip
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   246
  parent:      2:a60552eb93fb
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   247
  parent:      3:f59da8fc0fcf
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   248
  user:        test
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   249
  date:        Thu Jan 01 00:00:00 1970 +0000
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   250
  summary:     merge p1 3=outside p2 1=ancestor
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   251
  
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   252
  $ hg rebase -r 4 -d 2
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   253
  rebasing 4:a57575f79074 "merge p1 1=ancestor p2 3=outside"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   254
  saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/a57575f79074-385426e5-rebase.hg
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   255
  $ hg tip
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   256
  changeset:   5:f9daf77ffe76
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   257
  tag:         tip
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   258
  parent:      2:a60552eb93fb
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   259
  parent:      3:f59da8fc0fcf
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   260
  user:        test
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   261
  date:        Thu Jan 01 00:00:00 1970 +0000
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   262
  summary:     merge p1 1=ancestor p2 3=outside
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   263
  
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   264
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   265
  @    5: f9daf77ffe76 'merge p1 1=ancestor p2 3=outside'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   266
  |\
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   267
  +---o  4: cca50676b1c5 'merge p1 3=outside p2 1=ancestor'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   268
  | |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   269
  | o  3: f59da8fc0fcf 'outside'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   270
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   271
  o |  2: a60552eb93fb 'target'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   272
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   273
  o |  1: dd40c13f7a6f 'change'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   274
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   275
  o  0: 02f0f58d5300 'common'
23407
06b6867d853f tests: test coverage of parent order with p1 outside rebase set
Mads Kiilerich <madski@unity3d.com>
parents: 23406
diff changeset
   276
  
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   277
rebase of merge of ancestors
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   278
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   279
  $ hg up -qr 2
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   280
  $ hg merge -qr 3
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   281
  $ echo 'other change while merging future "rebase ancestors"' > other
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   282
  $ hg ci -Aqm 'merge rebase ancestors'
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   283
  $ hg rebase -d 5 -v
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   284
  rebasing 6:4c5f12f25ebe "merge rebase ancestors" (tip)
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   285
  resolving manifests
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   286
  removing other
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   287
  note: merging f9daf77ffe76+ and 4c5f12f25ebe using bids from ancestors a60552eb93fb and f59da8fc0fcf
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   288
  
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   289
  calculating bids for ancestor a60552eb93fb
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   290
  resolving manifests
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   291
  
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   292
  calculating bids for ancestor f59da8fc0fcf
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   293
  resolving manifests
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   294
  
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   295
  auction for merging merge bids
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   296
   other: consensus for g
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   297
  end of auction
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   298
  
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   299
  getting other
23749
a387b0390082 localrepo: show headline notes in commitctx before showing filenames
Mads Kiilerich <madski@unity3d.com>
parents: 23748
diff changeset
   300
  committing files:
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   301
  other
23749
a387b0390082 localrepo: show headline notes in commitctx before showing filenames
Mads Kiilerich <madski@unity3d.com>
parents: 23748
diff changeset
   302
  committing manifest
a387b0390082 localrepo: show headline notes in commitctx before showing filenames
Mads Kiilerich <madski@unity3d.com>
parents: 23748
diff changeset
   303
  committing changelog
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   304
  rebase merging completed
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   305
  1 changesets found
23748
4ab66de46a96 bundle: when verbose, show what takes up the space in the generated bundle
Mads Kiilerich <madski@unity3d.com>
parents: 23518
diff changeset
   306
  uncompressed size of bundle content:
30211
6b0741d6d234 changegroup: skip delta when the underlying revlog do not use them
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 29775
diff changeset
   307
       199 (changelog)
26928
42b5193ab5de test: use generaldelta in 'test-rebase-newancestors.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23835
diff changeset
   308
       216 (manifests)
42b5193ab5de test: use generaldelta in 'test-rebase-newancestors.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23835
diff changeset
   309
       182  other
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   310
  saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/4c5f12f25ebe-f46990e5-rebase.hg
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   311
  1 changesets found
23748
4ab66de46a96 bundle: when verbose, show what takes up the space in the generated bundle
Mads Kiilerich <madski@unity3d.com>
parents: 23518
diff changeset
   312
  uncompressed size of bundle content:
30211
6b0741d6d234 changegroup: skip delta when the underlying revlog do not use them
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 29775
diff changeset
   313
       254 (changelog)
26928
42b5193ab5de test: use generaldelta in 'test-rebase-newancestors.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23835
diff changeset
   314
       167 (manifests)
42b5193ab5de test: use generaldelta in 'test-rebase-newancestors.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23835
diff changeset
   315
       182  other
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   316
  adding branch
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   317
  adding changesets
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   318
  adding manifests
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   319
  adding file changes
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   320
  added 1 changesets with 1 changes to 1 files
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   321
  rebase completed
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   322
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   323
  @  6: 113755df812b 'merge rebase ancestors'
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   324
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   325
  o    5: f9daf77ffe76 'merge p1 1=ancestor p2 3=outside'
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   326
  |\
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   327
  +---o  4: cca50676b1c5 'merge p1 3=outside p2 1=ancestor'
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   328
  | |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   329
  | o  3: f59da8fc0fcf 'outside'
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   330
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   331
  o |  2: a60552eb93fb 'target'
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   332
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   333
  o |  1: dd40c13f7a6f 'change'
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   334
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 33863
diff changeset
   335
  o  0: 02f0f58d5300 'common'
23408
36dcd3db70ab tests: test rebase of merge of target ancestors
Mads Kiilerich <madski@unity3d.com>
parents: 23407
diff changeset
   336
  
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   337
Due to the limitation of 3-way merge algorithm (1 merge base), rebasing a merge
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   338
may include unwanted content:
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   339
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   340
  $ hg init $TESTTMP/dual-merge-base1
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   341
  $ cd $TESTTMP/dual-merge-base1
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   342
  $ hg debugdrawdag <<'EOS'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   343
  >   F
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   344
  >  /|
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   345
  > D E
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   346
  > | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   347
  > B C
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   348
  > |/
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   349
  > A Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   350
  > |/
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   351
  > R
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   352
  > EOS
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   353
  $ hg rebase -r D+E+F -d Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   354
  rebasing 5:5f2c926dfecf "D" (D)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   355
  rebasing 6:b296604d9846 "E" (E)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   356
  rebasing 7:caa9781e507d "F" (F tip)
33863
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33786
diff changeset
   357
  abort: rebasing 7:caa9781e507d will include unwanted changes from 4:d6003a550c2c or 3:c1e6b162678d
3160876c6e4e rebase: choose merge base without unwanted revisions
Jun Wu <quark@fb.com>
parents: 33786
diff changeset
   358
  [255]
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   359
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   360
The warning does not get printed if there is no unwanted change detected:
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   361
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   362
  $ hg init $TESTTMP/dual-merge-base2
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   363
  $ cd $TESTTMP/dual-merge-base2
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   364
  $ hg debugdrawdag <<'EOS'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   365
  >   D
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   366
  >  /|
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   367
  > B C
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   368
  > |/
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   369
  > A Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   370
  > |/
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   371
  > R
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   372
  > EOS
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   373
  $ hg rebase -r B+C+D -d Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   374
  rebasing 3:c1e6b162678d "B" (B)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   375
  rebasing 4:d6003a550c2c "C" (C)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   376
  rebasing 5:c8f78076273e "D" (D tip)
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   377
  saved backup bundle to $TESTTMP/dual-merge-base2/.hg/strip-backup/d6003a550c2c-6f1424b6-rebase.hg
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   378
  $ hg manifest -r 'desc(D)'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   379
  B
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   380
  C
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   381
  R
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   382
  Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   383
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   384
The merge base could be different from old p1 (changed parent becomes new p1):
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   385
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   386
  $ hg init $TESTTMP/chosen-merge-base1
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   387
  $ cd $TESTTMP/chosen-merge-base1
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   388
  $ hg debugdrawdag <<'EOS'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   389
  >   F
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   390
  >  /|
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   391
  > D E
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   392
  > | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   393
  > B C Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   394
  > EOS
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   395
  $ hg rebase -r D+F -d Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   396
  rebasing 3:004dc1679908 "D" (D)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   397
  rebasing 5:4be4cbf6f206 "F" (F tip)
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   398
  saved backup bundle to $TESTTMP/chosen-merge-base1/.hg/strip-backup/004dc1679908-06a66a3c-rebase.hg
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   399
  $ hg manifest -r 'desc(F)'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   400
  C
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   401
  D
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   402
  E
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   403
  Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   404
  $ hg log -r `hg log -r 'desc(F)' -T '{p1node}'` -T '{desc}\n'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   405
  D
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   406
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   407
  $ hg init $TESTTMP/chosen-merge-base2
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   408
  $ cd $TESTTMP/chosen-merge-base2
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   409
  $ hg debugdrawdag <<'EOS'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   410
  >   F
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   411
  >  /|
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   412
  > D E
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   413
  > | |
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   414
  > B C Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   415
  > EOS
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   416
  $ hg rebase -r E+F -d Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   417
  rebasing 4:974e4943c210 "E" (E)
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   418
  rebasing 5:4be4cbf6f206 "F" (F tip)
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   419
  saved backup bundle to $TESTTMP/chosen-merge-base2/.hg/strip-backup/974e4943c210-b2874da5-rebase.hg
33786
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   420
  $ hg manifest -r 'desc(F)'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   421
  B
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   422
  D
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   423
  E
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   424
  Z
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   425
  $ hg log -r `hg log -r 'desc(F)' -T '{p1node}'` -T '{desc}\n'
0975506120fb rebase: rewrite core algorithm (issue5578) (issue5630)
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   426
  E