tests/test-rebase-pull.t
author Gregory Szorc <gregory.szorc@gmail.com>
Mon, 24 Sep 2018 09:41:42 -0700
changeset 39861 db5501d93bcf
parent 35393 4441705b7111
child 45826 21733e8c924f
permissions -rw-r--r--
changegroup: remove reordering control (BC) This logic - including the experimental bundle.reorder option - was originally added in a8e3931e3fb5 in 2011 and then later ported to changegroup.py. The intent of this option and associated logic is to control the ordering of revisions in deltagroups in changegroups. At the time it was implemented, only changegroup version 1 existed and generaldelta revlogs were just coming into the world. Changegroup version 1 requires that deltas be made against the last revision sent over the wire. Used with generaldelta, this created an impedance mismatch of sorts and resulted in changegroup producers spending a lot of time recomputing deltas. Revision reordering was introduced so outgoing revisions would be sent in "generaldelta order" and producers would be able to reuse internal deltas from storage. Later on, we introduced changegroup version 2. It supported denoting which revision a delta was against. So we no longer needed to sort outgoing revisions to ensure optimal delta generation from the producer. So, subsequent changegroup versions disabled reordering. We also later made the changelog not store deltas by default. And we also made the changelog send out deltas in storage order. Why we do this for changelog, I'm not sure. Maybe we want to preserve revision order across clones? It doesn't really matter for this commit. Fast forward to 2018. We want to abstract storage backends. And having changegroup code require knowledge about how deltas are stored internally interferes with that goal. This commit removes reordering control from changegroup generation. After this commit, the reordering behavior is: * The changelog is always sent out in storage order (no behavior change). * Non-changelog generaldelta revlogs are reordered to always be in DAG topological order (previously, generaldelta revlogs would be emitted in storage order for version 2 and 3 changegroups). * Non-changelog non-generaldelta revlogs are sent in storage order (no behavior change). * There exists no config option to override behavior. The big difference here is that generaldelta revlogs now *always* have their revisions sorted in DAG order before going out over the wire. This behavior was previously only done for changegroup version 1. Version 2 and version 3 changegroups disabled reordering because the interchange format supported encoding arbitrary delta parents, so reordering wasn't strictly necessary. I can think of a few significant implications for this change. Because changegroup receivers will now see non-changelog revisions in DAG order instead of storage order, the internal storage order of manifests and files may differ substantially between producer and consumer. I don't think this matters that much, since the storage order of manifests and files is largely hidden from users. Only the storage order of changelog matters (because `hg log` shows the changelog in storage order). I don't think there should be any controversy here. The reordering of revisions has implications for changegroup producers. Previously, generaldelta revlogs would be emitted in storage order. And in the common case, the internally-stored delta could effectively be copied from disk into the deltagroup delta. This meant that emitting delta groups for generaldelta revlogs would be mostly linear read I/O. This is desirable for performance. With us now reordering generaldelta revlog revisions in DAG order, the read operations may use more random I/O instead of sequential I/O. This could result in performance loss. But with the prevalence of SSDs and fast random I/O, I'm not too worried. (Note: the optimal emission order for revlogs is actually delta encoding order. But the changegroup code wasn't doing that before or after this change. We could potentially implement that in a later commit.) Changegroups in DAG order will have implications for receivers. Previously, receiving storage order might mean seeing a number of interleaved branches. This would mean long delta chains, sparse I/O, and possibly more fulltext revisions instead of deltas, blowing up storage storage. (This is the same set of problems that sparse revlogs aims to address.) With the producer now sending revisions in DAG order, the receiver also stores revisions in DAG order. That means revisions for the same DAG branch are all grouped together. And this should yield better storage outcomes. In other words, sending the reordered changegroup allows the receiver to have better storage order and for the producer to not propagate its (possibly sub-optimal) internal storage order. On the mozilla-unified repository, this change influences bundle generation: $ hg bundle -t none-v2 -a before: time: real 355.680 secs (user 256.790+0.000 sys 16.820+0.000) after: time: real 382.950 secs (user 281.700+0.000 sys 17.690+0.000) before: 7,150,228,967 bytes (uncompressed) after: 7,041,556,273 bytes (uncompressed) before: 1,669,063,234 bytes (zstd l=3) after: 1,628,598,830 bytes (zstd l=3) $ hg unbundle before: time: real 511.910 secs (user 466.750+0.000 sys 32.680+0.000) after: time: real 487.790 secs (user 443.940+0.000 sys 30.840+0.000) 00manifest.d size: source: 274,924,292 bytes before: 304,741,626 bytes after: 245,252,087 bytes .hg/store total file size: source: 2,649,133,490 before: 2,680,888,130 after: 2,627,875,673 We see the bundle size drop. That's probably because if a revlog internally isn't storing a delta, it will choose to delta against the last emitted revision. And on repos with interleaved branches (like mozilla-unified), the previous revision could be an unrelated branch and therefore be a large delta. But with this patch, the previous revision is likely p1 or p2 and a delta should be small. We also see the manifest size drop by ~50 MB. It's worth noting that the manifest actually *increased* in size by ~25 MB in the old strategy and decreased ~25 MB from its source in the new strategy. Again, my explanation for this is that the DAG ordering in the changegroup is resulting in better grouping of revisions in the receiver, which results in more compact delta chains and higher storage efficiency. Unbundle time also dropped. I suspect this is due to the revlog having to work less to compute deltas since the incoming deltas are more optimal. i.e. the receiver spends less time resolving fulltext revisions as incoming deltas bounce around between DAG branches and delta chains. We also see bundle generation time increase. This is not desirable. However, the regression is only significant on the original repository: if we generate a bundle from the repository created from the new, always reordered bundles, we're close to baseline (if not at it with expected noise): $ hg bundle -t none-v2 -a before (original): time: real 355.680 secs (user 256.790+0.000 sys 16.820+0.000) after (original): time: real 382.950 secs (user 281.700+0.000 sys 17.690+0.000) after (new repo): time: real 362.280 secs (user 260.300+0.000 sys 17.700+0.000) This regression is a bit worrying because it will impact serving canonical repositories (that don't have optimal internal storage unless they are reordered - possibly as part of running `hg debugupgraderepo`). However, this regression will only be noticed by very large changegroups. And I'm guessing/hoping that any repository that large is using clonebundles to mitigate server load. Again, sending DAG order isn't the optimal send order for servers: sending in storage-delta order is. But in order to enable storage-optimal send order, we'll need a storage API that handles sorting. Future commits will introduce such an API. Differential Revision: https://phab.mercurial-scm.org/D4721
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=
30725
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
     4
  > histedit=
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
     5
  > 
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
     6
  > [alias]
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
     7
  > 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
     8
  > EOF
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
     9
11198
b345b1cc124f rebase: use helpers.sh in tests
Matt Mackall <mpm@selenic.com>
parents: 10775
diff changeset
    10
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    11
  $ hg init a
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    12
  $ cd a
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
    13
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    14
  $ echo C1 > C1
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    15
  $ hg ci -Am C1
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    16
  adding C1
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    17
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    18
  $ echo C2 > C2
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    19
  $ hg ci -Am C2
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    20
  adding C2
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    21
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    22
  $ cd ..
6910
93609576244e Debashify rebase tests
Brendan Cully <brendan@kublai.com>
parents: 6906
diff changeset
    23
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    24
  $ hg clone a b
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    25
  updating to branch default
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    26
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    27
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    28
  $ hg clone a c
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    29
  updating to branch default
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    30
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    31
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    32
  $ cd b
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
    33
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    34
  $ echo L1 > L1
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    35
  $ hg ci -Am L1
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    36
  adding L1
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    37
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    38
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    39
  $ cd ../a
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
    40
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    41
  $ echo R1 > R1
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    42
  $ hg ci -Am R1
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    43
  adding R1
7786
92455c1d6f83 rebase: pull --rebase updates if there is nothing to rebase
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents: 6910
diff changeset
    44
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    45
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    46
  $ cd ../b
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    47
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    48
Now b has one revision to be pulled from a:
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
    49
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    50
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
    51
  pulling from $TESTTMP/a
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    52
  searching for changes
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    53
  adding changesets
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    54
  adding manifests
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    55
  adding file changes
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    56
  added 1 changesets with 1 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33365
diff changeset
    57
  new changesets 77ae9631bcca
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
    58
  rebasing 2:ff8d69a621f9 "L1"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
    59
  saved backup bundle to $TESTTMP/b/.hg/strip-backup/ff8d69a621f9-160fa373-rebase.hg
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
    60
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    61
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
    62
  @  3: d80cc2da061e 'L1'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    63
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
    64
  o  2: 77ae9631bcca 'R1'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    65
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
    66
  o  1: 783333faa078 'C2'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    67
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
    68
  o  0: 05d58a0c15dd 'C1'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    69
  
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    70
Re-run:
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
    71
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    72
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
    73
  pulling from $TESTTMP/a
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    74
  searching for changes
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    75
  no changes found
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
    76
30725
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    77
Abort pull early if working dir is not clean:
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    78
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    79
  $ echo L1-mod > L1
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    80
  $ hg pull --rebase
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    81
  abort: uncommitted changes
30755
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
    82
  (cannot pull with rebase: please commit or shelve your changes first)
30725
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    83
  [255]
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    84
  $ hg update --clean --quiet
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    85
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    86
Abort pull early if another operation (histedit) is in progress:
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    87
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    88
  $ hg histedit . -q --commands - << EOF
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    89
  > edit d80cc2da061e histedit: generate unfinished state
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    90
  > EOF
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    91
  Editing (d80cc2da061e), you may commit or record as needed now.
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    92
  (hg histedit --continue to resume)
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    93
  [1]
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    94
  $ hg pull --rebase
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    95
  abort: histedit in progress
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    96
  (use 'hg histedit --continue' or 'hg histedit --abort')
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    97
  [255]
c2bd2f77965b rebase: fail-fast the pull if working dir is not clean (BC)
Valters Vingolds <valters@vingolds.ch>
parents: 29044
diff changeset
    98
  $ hg histedit --abort --quiet
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
    99
30755
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   100
Abort pull early with pending uncommitted merge:
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   101
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   102
  $ cd ..
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   103
  $ hg clone --noupdate c d
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   104
  $ cd d
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   105
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   106
  o  1: 783333faa078 'C2'
30755
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   107
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   108
  o  0: 05d58a0c15dd 'C1'
30755
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   109
  
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   110
  $ hg update --quiet 0
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   111
  $ echo M1 > M1
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   112
  $ hg commit --quiet -Am M1
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   113
  $ hg update --quiet 1
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   114
  $ hg merge 2
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   115
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   116
  (branch merge, don't forget to commit)
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   117
  $ hg pull --rebase
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   118
  abort: outstanding uncommitted merge
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   119
  (cannot pull with rebase: please commit or shelve your changes first)
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   120
  [255]
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   121
  $ hg update --clean --quiet
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   122
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   123
Abort pull early with unclean subrepo:
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   124
  $ echo s = s > .hgsub
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   125
  $ hg add .hgsub
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   126
  $ hg init s
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   127
  $ hg commit -m "generated a subrepo"
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   128
  $ echo a > s/a
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   129
  $ hg -R s add s/a
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   130
  $ hg pull --rebase
33365
6d88468d435b subrepo: make the output references to subrepositories consistent
Matt Harbison <matt_harbison@yahoo.com>
parents: 33332
diff changeset
   131
  abort: uncommitted changes in subrepository "s"
30755
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   132
  (cannot pull with rebase: please commit or shelve your changes first)
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   133
  [255]
0fbb3a5c188e rebase: provide detailed hint to abort message if working dir is not clean
Valters Vingolds <valters@vingolds.ch>
parents: 30725
diff changeset
   134
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   135
Invoke pull --rebase and nothing to rebase:
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   136
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   137
  $ cd ../c
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
   138
16228
5b41d5ad52bf rebase: move bookmarks as needed with pull --rebase (issue3285)
Matt Mackall <mpm@selenic.com>
parents: 15447
diff changeset
   139
  $ hg book norebase
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   140
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   141
  pulling from $TESTTMP/a
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   142
  searching for changes
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   143
  adding changesets
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   144
  adding manifests
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   145
  adding file changes
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   146
  added 1 changesets with 1 changes to 1 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33365
diff changeset
   147
  new changesets 77ae9631bcca
28189
fac3a24be50e rebase: choose default destination the same way as 'hg merge' (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28118
diff changeset
   148
  nothing to rebase - updating instead
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   149
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
16228
5b41d5ad52bf rebase: move bookmarks as needed with pull --rebase (issue3285)
Matt Mackall <mpm@selenic.com>
parents: 15447
diff changeset
   150
  updating bookmark norebase
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   151
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   152
  $ hg tglog -l 1
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   153
  @  2: 77ae9631bcca 'R1'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   154
  |
28627
d7af9b4ae7dd graphmod: set default edge styles for ascii graphs (BC)
Martijn Pieters <mjpieters@fb.com>
parents: 28189
diff changeset
   155
  ~
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   156
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   157
pull --rebase --update should ignore --update:
7786
92455c1d6f83 rebase: pull --rebase updates if there is nothing to rebase
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents: 6910
diff changeset
   158
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   159
  $ hg pull --rebase --update
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   160
  pulling from $TESTTMP/a
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   161
  searching for changes
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   162
  no changes found
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   163
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   164
pull --rebase doesn't update if nothing has been pulled:
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   165
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   166
  $ hg up -q 1
8242
aee8455ee8ec Fix typeerror when specifying both --rebase and --pull
Martijn Pieters <mj@zopatista.com>
parents: 7786
diff changeset
   167
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   168
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   169
  pulling from $TESTTMP/a
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   170
  searching for changes
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   171
  no changes found
6906
808f03f61ebe Add rebase extension
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents:
diff changeset
   172
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   173
  $ hg tglog -l 1
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   174
  o  2: 77ae9631bcca 'R1'
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   175
  |
28627
d7af9b4ae7dd graphmod: set default edge styles for ascii graphs (BC)
Martijn Pieters <mjpieters@fb.com>
parents: 28189
diff changeset
   176
  ~
12608
16b854cb80f1 tests: unify test-rebase*
Adrian Buehlmann <adrian@cadifra.com>
parents: 11208
diff changeset
   177
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16228
diff changeset
   178
  $ cd ..
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   179
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   180
pull --rebase works when a specific revision is pulled (issue3619)
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   181
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   182
  $ cd a
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   183
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   184
  @  2: 77ae9631bcca 'R1'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   185
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   186
  o  1: 783333faa078 'C2'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   187
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   188
  o  0: 05d58a0c15dd 'C1'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   189
  
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   190
  $ echo R2 > R2
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   191
  $ hg ci -Am R2
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   192
  adding R2
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   193
  $ echo R3 > R3
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   194
  $ hg ci -Am R3
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   195
  adding R3
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   196
  $ cd ../c
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   197
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   198
  o  2: 77ae9631bcca 'R1'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   199
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   200
  @  1: 783333faa078 'C2'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   201
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   202
  o  0: 05d58a0c15dd 'C1'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   203
  
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   204
  $ echo L1 > L1
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   205
  $ hg ci -Am L1
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   206
  adding L1
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   207
  created new head
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   208
  $ hg pull --rev tip --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   209
  pulling from $TESTTMP/a
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   210
  searching for changes
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   211
  adding changesets
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   212
  adding manifests
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   213
  adding file changes
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   214
  added 2 changesets with 2 changes to 2 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33365
diff changeset
   215
  new changesets 31cd3a05214e:770a61882ace
23517
4f18e80d9c30 rebase: show more useful status information while rebasing
Mads Kiilerich <madski@unity3d.com>
parents: 23516
diff changeset
   216
  rebasing 3:ff8d69a621f9 "L1"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   217
  saved backup bundle to $TESTTMP/c/.hg/strip-backup/ff8d69a621f9-160fa373-rebase.hg
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   218
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   219
  @  5: 518d153c0ba3 'L1'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   220
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   221
  o  4: 770a61882ace 'R3'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   222
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   223
  o  3: 31cd3a05214e 'R2'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   224
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   225
  o  2: 77ae9631bcca 'R1'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   226
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   227
  o  1: 783333faa078 'C2'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   228
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   229
  o  0: 05d58a0c15dd 'C1'
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   230
  
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   231
pull --rebase works with bundle2 turned on
17988
848345a8d6ad rebase: fix pull --rev options clashing with --rebase (issue3619)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 16913
diff changeset
   232
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   233
  $ cd ../a
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   234
  $ echo R4 > R4
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   235
  $ hg ci -Am R4
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   236
  adding R4
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   237
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   238
  @  5: 00e3b7781125 'R4'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   239
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   240
  o  4: 770a61882ace 'R3'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   241
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   242
  o  3: 31cd3a05214e 'R2'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   243
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   244
  o  2: 77ae9631bcca 'R1'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   245
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   246
  o  1: 783333faa078 'C2'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   247
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   248
  o  0: 05d58a0c15dd 'C1'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   249
  
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   250
  $ cd ../c
26423
c93f91c1db1c strip: use bundle2 + cg2 by default when repository use general delta
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 24170
diff changeset
   251
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   252
  pulling from $TESTTMP/a
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   253
  searching for changes
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   254
  adding changesets
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   255
  adding manifests
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   256
  adding file changes
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   257
  added 1 changesets with 1 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33365
diff changeset
   258
  new changesets 00e3b7781125
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   259
  rebasing 5:518d153c0ba3 "L1"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   260
  saved backup bundle to $TESTTMP/c/.hg/strip-backup/518d153c0ba3-73407f14-rebase.hg
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   261
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   262
  @  6: 0d0727eb7ce0 'L1'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   263
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   264
  o  5: 00e3b7781125 'R4'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   265
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   266
  o  4: 770a61882ace 'R3'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   267
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   268
  o  3: 31cd3a05214e 'R2'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   269
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   270
  o  2: 77ae9631bcca 'R1'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   271
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   272
  o  1: 783333faa078 'C2'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   273
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   274
  o  0: 05d58a0c15dd 'C1'
24170
fbc4d550a6ab repair: setup hookargs when processing bundle2s
Eric Sumner <ericsumner@fb.com>
parents: 23835
diff changeset
   275
  
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   276
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   277
pull --rebase only update if there is nothing to rebase
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   278
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   279
  $ cd ../a
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   280
  $ echo R5 > R5
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   281
  $ hg ci -Am R5
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   282
  adding R5
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   283
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   284
  @  6: 88dd24261747 'R5'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   285
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   286
  o  5: 00e3b7781125 'R4'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   287
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   288
  o  4: 770a61882ace 'R3'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   289
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   290
  o  3: 31cd3a05214e 'R2'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   291
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   292
  o  2: 77ae9631bcca 'R1'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   293
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   294
  o  1: 783333faa078 'C2'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   295
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   296
  o  0: 05d58a0c15dd 'C1'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   297
  
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   298
  $ cd ../c
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   299
  $ echo L2 > L2
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   300
  $ hg ci -Am L2
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   301
  adding L2
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   302
  $ hg up 'desc(L1)'
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   303
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   304
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   305
  pulling from $TESTTMP/a
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   306
  searching for changes
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   307
  adding changesets
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   308
  adding manifests
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   309
  adding file changes
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   310
  added 1 changesets with 1 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33365
diff changeset
   311
  new changesets 88dd24261747
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   312
  rebasing 6:0d0727eb7ce0 "L1"
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   313
  rebasing 7:c1f58876e3bf "L2"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   314
  saved backup bundle to $TESTTMP/c/.hg/strip-backup/0d0727eb7ce0-ef61ccb2-rebase.hg
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   315
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   316
  o  8: 6dc0ea5dcf55 'L2'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   317
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   318
  @  7: 864e0a2d2614 'L1'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   319
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   320
  o  6: 88dd24261747 'R5'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   321
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   322
  o  5: 00e3b7781125 'R4'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   323
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   324
  o  4: 770a61882ace 'R3'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   325
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   326
  o  3: 31cd3a05214e 'R2'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   327
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   328
  o  2: 77ae9631bcca 'R1'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   329
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   330
  o  1: 783333faa078 'C2'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   331
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   332
  o  0: 05d58a0c15dd 'C1'
28117
41a0fb2b4bbc rebase: 'hg pull --rebase' now update only if there was nothing to rebase
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26423
diff changeset
   333
  
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   334
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   335
pull --rebase update (no rebase) use proper update:
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   336
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   337
- warn about other head.
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   338
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   339
  $ cd ../a
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   340
  $ echo R6 > R6
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   341
  $ hg ci -Am R6
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   342
  adding R6
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   343
  $ cd ../c
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   344
  $ hg up 'desc(R5)'
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   345
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   346
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   347
  pulling from $TESTTMP/a
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   348
  searching for changes
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   349
  adding changesets
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   350
  adding manifests
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   351
  adding file changes
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   352
  added 1 changesets with 1 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33365
diff changeset
   353
  new changesets 65bc164c1d9b
28189
fac3a24be50e rebase: choose default destination the same way as 'hg merge' (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28118
diff changeset
   354
  nothing to rebase - updating instead
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   355
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
32698
1b5c61d38a52 update: show the commit to which we updated in case of multiple heads (BC)
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30755
diff changeset
   356
  updated to "65bc164c1d9b: R6"
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   357
  1 other heads for branch "default"
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   358
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   359
  @  9: 65bc164c1d9b 'R6'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   360
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   361
  | o  8: 6dc0ea5dcf55 'L2'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   362
  | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   363
  | o  7: 864e0a2d2614 'L1'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   364
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   365
  o  6: 88dd24261747 'R5'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   366
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   367
  o  5: 00e3b7781125 'R4'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   368
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   369
  o  4: 770a61882ace 'R3'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   370
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   371
  o  3: 31cd3a05214e 'R2'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   372
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   373
  o  2: 77ae9631bcca 'R1'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   374
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   375
  o  1: 783333faa078 'C2'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   376
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   377
  o  0: 05d58a0c15dd 'C1'
28118
0e3835c7e1cf rebase: perform update through the 'update' command
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28117
diff changeset
   378
  
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   379
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   380
Multiple pre-existing heads on the branch
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   381
-----------------------------------------
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   382
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   383
Pull bring content, but nothing on the current branch, we should not consider
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   384
pre-existing heads.
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   385
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   386
  $ cd ../a
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   387
  $ hg branch unrelatedbranch
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   388
  marked working directory as branch unrelatedbranch
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   389
  (branches are permanent and global, did you want a bookmark?)
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   390
  $ echo B1 > B1
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   391
  $ hg commit -Am B1
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   392
  adding B1
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   393
  $ cd ../c
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   394
  $ hg up 'desc(L2)'
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   395
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   396
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   397
  pulling from $TESTTMP/a
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   398
  searching for changes
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   399
  adding changesets
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   400
  adding manifests
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   401
  adding file changes
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   402
  added 1 changesets with 1 changes to 1 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33365
diff changeset
   403
  new changesets 39c381359968
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   404
  nothing to rebase
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   405
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   406
There is two local heads and we pull a third one.
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   407
The second local head should not confuse the `hg pull rebase`.
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   408
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   409
  $ hg up 'desc(R6)'
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   410
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   411
  $ echo M1 > M1
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   412
  $ hg commit -Am M1
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   413
  adding M1
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   414
  $ cd ../a
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   415
  $ hg up 'desc(R6)'
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   416
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   417
  $ echo R7 > R7
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   418
  $ hg commit -Am R7
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   419
  adding R7
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   420
  $ cd ../c
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   421
  $ hg up 'desc(L2)'
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   422
  2 files updated, 0 files merged, 2 files removed, 0 files unresolved
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   423
  $ hg pull --rebase
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   424
  pulling from $TESTTMP/a
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   425
  searching for changes
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   426
  adding changesets
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   427
  adding manifests
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   428
  adding file changes
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   429
  added 1 changesets with 1 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33365
diff changeset
   430
  new changesets f7d3e42052f9
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   431
  rebasing 7:864e0a2d2614 "L1"
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   432
  rebasing 8:6dc0ea5dcf55 "L2"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
   433
  saved backup bundle to $TESTTMP/c/.hg/strip-backup/864e0a2d2614-2f72c89c-rebase.hg
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   434
  $ hg tglog
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   435
  @  12: 3603a865eea0 'L2'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   436
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   437
  o  11: bcc8a9cd04bf 'L1'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   438
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   439
  o  10: f7d3e42052f9 'R7'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   440
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   441
  | o  9: 41fab4eef82f 'M1'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   442
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   443
  | o  8: 39c381359968 'B1' unrelatedbranch
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   444
  |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   445
  o  7: 65bc164c1d9b 'R6'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   446
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   447
  o  6: 88dd24261747 'R5'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   448
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   449
  o  5: 00e3b7781125 'R4'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   450
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   451
  o  4: 770a61882ace 'R3'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   452
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   453
  o  3: 31cd3a05214e 'R2'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   454
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   455
  o  2: 77ae9631bcca 'R1'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   456
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   457
  o  1: 783333faa078 'C2'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   458
  |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 34661
diff changeset
   459
  o  0: 05d58a0c15dd 'C1'
29044
261c25372959 rebase: restrict rebase destination to the pulled set (issue5214)
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 28627
diff changeset
   460