tests/test-rebase-dest.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Fri, 08 Nov 2024 17:08:11 +0100
branchstable
changeset 52182 fa58f4f97337
parent 48967 42d2b31cee0b
permissions -rw-r--r--
ci: shard the test run on mac os X This should comes with some benefit: - spread the load across more runner, - reduce the real-time CI run, - reduce the "retry" run when we need them. We start with the Mac jobs, but that would be tremendously useful for Windows too. For linux, we need to reduce the startup overhead for this to be worth it. Building smaller image and speeding up clone should help with that.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31734
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     1
Require a destination
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     2
  $ cat >> $HGRCPATH <<EOF
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     3
  > [extensions]
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     4
  > rebase =
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     5
  > [commands]
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     6
  > rebase.requiredest = True
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     7
  > EOF
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     8
  $ hg init repo
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
     9
  $ cd repo
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    10
  $ echo a >> a
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    11
  $ hg commit -qAm aa
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    12
  $ echo b >> b
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    13
  $ hg commit -qAm bb
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    14
  $ hg up ".^"
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    15
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    16
  $ echo c >> c
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    17
  $ hg commit -qAm cc
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    18
  $ hg rebase
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    19
  abort: you must specify a destination
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    20
  (use: hg rebase -d REV)
46671
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45921
diff changeset
    21
  [10]
31734
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    22
  $ hg rebase -d 1
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
    23
  rebasing 2:5db65b93a12b tip "cc"
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35394
diff changeset
    24
  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/5db65b93a12b-4fb789ec-rebase.hg
31734
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    25
  $ hg rebase -d 0 -r . -q
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    26
  $ HGPLAIN=1 hg rebase
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
    27
  rebasing 2:889b0bc6a730 tip "cc"
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35394
diff changeset
    28
  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/889b0bc6a730-41ec4f81-rebase.hg
31734
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    29
  $ hg rebase -d 0 -r . -q
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    30
  $ hg --config commands.rebase.requiredest=False rebase
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
    31
  rebasing 2:279de9495438 tip "cc"
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35394
diff changeset
    32
  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/279de9495438-ab0a5128-rebase.hg
31734
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
    33
31735
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    34
Requiring dest should not break continue or other rebase options
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    35
  $ hg up 1 -q
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    36
  $ echo d >> c
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    37
  $ hg commit -qAm dc
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    38
  $ hg log -G -T '{rev} {desc}'
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    39
  @  3 dc
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    40
  |
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    41
  | o  2 cc
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    42
  |/
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    43
  o  1 bb
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    44
  |
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    45
  o  0 aa
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    46
  
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    47
  $ hg rebase -d 2
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
    48
  rebasing 3:0537f6b50def tip "dc"
31735
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    49
  merging c
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    50
  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
45150
dc5e5577af39 error: unify the error message formats for 'rebase' and 'unshelve'
Daniel Ploch <dploch@google.com>
parents: 44566
diff changeset
    51
  unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
45845
21733e8c924f errors: add config that lets user get more detailed exit codes
Martin von Zweigbergk <martinvonz@google.com>
parents: 45794
diff changeset
    52
  [240]
31735
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    53
  $ echo d > c
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    54
  $ hg resolve --mark --all
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    55
  (no more unresolved files)
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    56
  continue: hg rebase --continue
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31734
diff changeset
    57
  $ hg rebase --continue
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
    58
  rebasing 3:0537f6b50def tip "dc"
35400
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35394
diff changeset
    59
  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/0537f6b50def-be4c7386-rebase.hg
31737
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    60
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    61
  $ cd ..
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    62
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    63
Check rebase.requiredest interaction with pull --rebase
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    64
  $ hg clone repo clone
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    65
  updating to branch default
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    66
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    67
  $ cd repo
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    68
  $ echo e > e
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    69
  $ hg commit -qAm ee
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    70
  $ cd ..
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    71
  $ cd clone
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    72
  $ echo f > f
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    73
  $ hg commit -qAm ff
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    74
  $ hg pull --rebase
31738
ae6bab095c66 rebase: abort hg pull --rebase if rebase.requiredest is set (issue5514)
Ryan McElroy <rmcelroy@fb.com>
parents: 31737
diff changeset
    75
  abort: rebase destination required by configuration
ae6bab095c66 rebase: abort hg pull --rebase if rebase.requiredest is set (issue5514)
Ryan McElroy <rmcelroy@fb.com>
parents: 31737
diff changeset
    76
  (use hg pull followed by hg rebase -d DEST)
46671
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45921
diff changeset
    77
  [10]
31737
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31736
diff changeset
    78
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    79
Setup rebase with multiple destinations
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    80
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    81
  $ cd $TESTTMP
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    82
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    83
  $ cat >> $TESTTMP/maprevset.py <<EOF
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    84
  > from mercurial import registrar, revset, revsetlang, smartset
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    85
  > revsetpredicate = registrar.revsetpredicate()
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    86
  > cache = {}
36305
164ed6d54fdf tests: add b prefixes to test-rebase-dest.t
Augie Fackler <augie@google.com>
parents: 35709
diff changeset
    87
  > @revsetpredicate(b'map')
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    88
  > def map(repo, subset, x):
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    89
  >     """(set, mapping)"""
36305
164ed6d54fdf tests: add b prefixes to test-rebase-dest.t
Augie Fackler <augie@google.com>
parents: 35709
diff changeset
    90
  >     setarg, maparg = revsetlang.getargs(x, 2, 2, b'')
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    91
  >     rset = revset.getset(repo, smartset.fullreposet(repo), setarg)
36305
164ed6d54fdf tests: add b prefixes to test-rebase-dest.t
Augie Fackler <augie@google.com>
parents: 35709
diff changeset
    92
  >     mapstr = revsetlang.getstring(maparg, b'')
164ed6d54fdf tests: add b prefixes to test-rebase-dest.t
Augie Fackler <augie@google.com>
parents: 35709
diff changeset
    93
  >     map = dict(a.split(b':') for a in mapstr.split(b','))
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    94
  >     rev = rset.first()
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    95
  >     desc = repo[rev].description()
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    96
  >     newdesc = map.get(desc)
36305
164ed6d54fdf tests: add b prefixes to test-rebase-dest.t
Augie Fackler <augie@google.com>
parents: 35709
diff changeset
    97
  >     if newdesc == b'null':
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    98
  >         revs = [-1]
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
    99
  >     else:
36305
164ed6d54fdf tests: add b prefixes to test-rebase-dest.t
Augie Fackler <augie@google.com>
parents: 35709
diff changeset
   100
  >         query = revsetlang.formatspec(b'desc(%s)', newdesc)
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   101
  >         revs = repo.revs(query)
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   102
  >     return smartset.baseset(revs)
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   103
  > EOF
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   104
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   105
  $ cat >> $HGRCPATH <<EOF
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   106
  > [ui]
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   107
  > allowemptycommit=1
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   108
  > [extensions]
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   109
  > drawdag=$TESTDIR/drawdag.py
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   110
  > [phases]
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   111
  > publish=False
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   112
  > [alias]
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   113
  > tglog = log -G --template "{rev}: {node|short} {desc} {instabilities}" -r 'sort(all(), topo)'
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   114
  > [extensions]
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   115
  > maprevset=$TESTTMP/maprevset.py
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   116
  > [experimental]
34865
a0100f34e20b config: replace experimental.stabilization by experimental.evolution
Boris Feld <boris.feld@octobus.net>
parents: 34024
diff changeset
   117
  > evolution=true
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   118
  > EOF
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   119
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   120
  $ rebasewithdag() {
39723
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 36305
diff changeset
   121
  >   N=`"$PYTHON" -c "print($N+1)"`
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   122
  >   hg init repo$N && cd repo$N
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   123
  >   hg debugdrawdag
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   124
  >   hg rebase "$@" > _rebasetmp
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   125
  >   r=$?
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   126
  >   grep -v 'saved backup bundle' _rebasetmp
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   127
  >   [ $r -eq 0 ] && rm -f .hg/localtags && hg tglog
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   128
  >   cd ..
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   129
  >   return $r
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   130
  > }
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   131
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   132
Destination resolves to an empty set:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   133
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   134
  $ rebasewithdag -s B -d 'SRC - SRC' <<'EOS'
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   135
  > C
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   136
  > |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   137
  > B
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   138
  > |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   139
  > A
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   140
  > EOS
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   141
  nothing to rebase - empty destination
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   142
  [1]
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   143
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   144
Multiple destinations and --collapse are not compatible:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   145
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   146
  $ rebasewithdag -s C+E -d 'SRC^^' --collapse <<'EOS'
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   147
  > C F
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   148
  > | |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   149
  > B E
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   150
  > | |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   151
  > A D
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   152
  > EOS
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   153
  abort: --collapse does not work with multiple destinations
46671
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45921
diff changeset
   154
  [10]
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   155
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   156
Multiple destinations cannot be used with --base:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   157
44566
f63598aa1c4b rebase: accept multiple --base arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents: 44565
diff changeset
   158
  $ rebasewithdag -b B -b E -d 'SRC^^' --collapse <<'EOS'
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   159
  > B E
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   160
  > | |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   161
  > A D
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   162
  > EOS
45921
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 45845
diff changeset
   163
  abort: unknown revision 'SRC'
48130
5105a9975407 errors: raise InputError from revsingle() iff revset provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents: 46671
diff changeset
   164
  [10]
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   165
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   166
Rebase to null should work:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   167
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   168
  $ rebasewithdag -r A+C+D -d 'null' <<'EOS'
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   169
  > C D
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   170
  > | |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   171
  > A B
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   172
  > EOS
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   173
  already rebased 0:426bada5c675 A "A"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   174
  already rebased 2:dc0947a82db8 C "C"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   175
  rebasing 3:004dc1679908 D tip "D"
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   176
  o  4: d8d8601abd5e D
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   177
  
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   178
  o  2: dc0947a82db8 C
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   179
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   180
  | o  1: fc2b737bb2e5 B
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   181
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   182
  o  0: 426bada5c675 A
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   183
  
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   184
Destination resolves to multiple changesets:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   185
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   186
  $ rebasewithdag -s B -d 'ALLSRC+SRC' <<'EOS'
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   187
  > C
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   188
  > |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   189
  > B
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   190
  > |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   191
  > Z
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   192
  > EOS
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   193
  abort: rebase destination for f0a671a46792 is not unique
46671
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45921
diff changeset
   194
  [10]
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   195
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   196
Destination is an ancestor of source:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   197
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   198
  $ rebasewithdag -s B -d 'SRC' <<'EOS'
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   199
  > C
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   200
  > |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   201
  > B
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   202
  > |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   203
  > Z
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   204
  > EOS
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   205
  abort: source and destination form a cycle
46671
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45921
diff changeset
   206
  [10]
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   207
42107
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   208
BUG: cycles aren't flagged correctly when --dry-run is set:
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   209
  $ rebasewithdag -s B -d 'SRC' --dry-run <<'EOS'
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   210
  > C
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   211
  > |
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   212
  > B
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   213
  > |
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   214
  > Z
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   215
  > EOS
42108
1b5cec8b6a1e rebase: fix bug that prevented dry-run rebases from printing failures
Augie Fackler <augie@google.com>
parents: 42107
diff changeset
   216
  abort: source and destination form a cycle
42107
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   217
  starting dry-run rebase; repository will not be changed
46671
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45921
diff changeset
   218
  [10]
42107
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39723
diff changeset
   219
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   220
Switch roots:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   221
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   222
  $ rebasewithdag -s 'all() - roots(all())' -d 'roots(all()) - ::SRC' <<'EOS'
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   223
  > C  F
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   224
  > |  |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   225
  > B  E
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   226
  > |  |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   227
  > A  D
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   228
  > EOS
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   229
  rebasing 2:112478962961 B "B"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   230
  rebasing 4:26805aba1e60 C "C"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   231
  rebasing 3:cd488e83d208 E "E"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   232
  rebasing 5:0069ba24938a F tip "F"
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   233
  o  9: d150ff263fc8 F
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   234
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   235
  o  8: 66f30a1a2eab E
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   236
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   237
  | o  7: 93db94ffae0e C
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   238
  | |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   239
  | o  6: d0071c3b0c88 B
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   240
  | |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   241
  | o  1: 058c1e1fb10a D
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   242
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   243
  o  0: 426bada5c675 A
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   244
  
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   245
Different destinations for merge changesets with a same root:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   246
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   247
  $ rebasewithdag -s B -d '((parents(SRC)-B-A)::) - (::ALLSRC)' <<'EOS'
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   248
  > C G
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   249
  > |\|
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   250
  > | F
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   251
  > |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   252
  > B E
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   253
  > |\|
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   254
  > A D
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   255
  > EOS
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   256
  rebasing 3:a4256619d830 B "B"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   257
  rebasing 6:8e139e245220 C tip "C"
44375
77bb38be00ea rebase: always be graft-like, not merge-like, also for merges
Martin von Zweigbergk <martinvonz@google.com>
parents: 42108
diff changeset
   258
  o    8: d7d1169e9b1c C
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   259
  |\
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   260
  | o    7: 2ed0c8546285 B
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   261
  | |\
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   262
  o | |  5: 8fdb2c1feb20 G
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   263
  | | |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   264
  | | o  4: cd488e83d208 E
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   265
  | | |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   266
  o | |  2: a6661b868de9 F
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   267
   / /
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   268
  | o  1: 058c1e1fb10a D
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   269
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   270
  o  0: 426bada5c675 A
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   271
  
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   272
Move to a previous parent:
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   273
44565
05654ea5137c rebase: accept multiple --source arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents: 44375
diff changeset
   274
  $ rebasewithdag -s E -s F -s G -d 'SRC^^' <<'EOS'
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   275
  >     H
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   276
  >     |
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   277
  >   D G
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   278
  >   |/
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   279
  >   C F
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   280
  >   |/
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   281
  >   B E  # E will be ignored, since E^^ is empty
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   282
  >   |/
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   283
  >   A
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   284
  > EOS
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   285
  rebasing 4:33441538d4aa F "F"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   286
  rebasing 6:cf43ad9da869 G "G"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   287
  rebasing 7:eef94f3b5f03 H tip "H"
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   288
  o  10: b3d84c6666cf H
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   289
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   290
  | o  5: f585351a92f8 D
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   291
  |/
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   292
  o  3: 26805aba1e60 C
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   293
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   294
  | o  9: f7c28a1a15e2 G
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   295
  |/
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   296
  o  1: 112478962961 B
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   297
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   298
  | o  8: 02aa697facf7 F
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   299
  |/
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   300
  | o  2: 7fb047a69f22 E
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   301
  |/
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   302
  o  0: 426bada5c675 A
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   303
  
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   304
Source overlaps with destination:
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   305
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   306
  $ rebasewithdag -s 'B+C+D' -d 'map(SRC, "B:C,C:D")' <<'EOS'
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   307
  > B C D
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   308
  >  \|/
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   309
  >   A
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   310
  > EOS
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   311
  rebasing 2:dc0947a82db8 C "C"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   312
  rebasing 1:112478962961 B "B"
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   313
  o  5: 5fe9935d5222 B
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   314
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   315
  o  4: 12d20731b9e0 C
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   316
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   317
  o  3: b18e25de2cf5 D
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   318
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   319
  o  0: 426bada5c675 A
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   320
  
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   321
Detect cycles early:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   322
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   323
  $ rebasewithdag -r 'all()-Z' -d 'map(SRC, "A:B,B:C,C:D,D:B")' <<'EOS'
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   324
  > A B C
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   325
  >  \|/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   326
  >   | D
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   327
  >   |/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   328
  >   Z
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   329
  > EOS
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   330
  abort: source and destination form a cycle
46671
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45921
diff changeset
   331
  [10]
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   332
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   333
Detect source is ancestor of dest in runtime:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   334
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   335
  $ rebasewithdag -r 'C+B' -d 'map(SRC, "C:B,B:D")' -q <<'EOS'
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   336
  >   D
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   337
  >   |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   338
  > B C
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   339
  >  \|
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   340
  >   A
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   341
  > EOS
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   342
  abort: source is ancestor of destination
46671
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45921
diff changeset
   343
  [10]
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   344
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   345
"Already rebased" fast path still works:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   346
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   347
  $ rebasewithdag -r 'all()' -d 'SRC^' <<'EOS'
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   348
  >   E F
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   349
  >  /| |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   350
  > B C D
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   351
  >  \|/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   352
  >   A
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   353
  > EOS
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   354
  already rebased 1:112478962961 B "B"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   355
  already rebased 2:dc0947a82db8 C "C"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   356
  already rebased 3:b18e25de2cf5 D "D"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   357
  already rebased 4:312782b8f06e E "E"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   358
  already rebased 5:ad6717a6a58e F tip "F"
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   359
  o  5: ad6717a6a58e F
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   360
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   361
  o  3: b18e25de2cf5 D
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   362
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   363
  | o    4: 312782b8f06e E
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   364
  | |\
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   365
  +---o  2: dc0947a82db8 C
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   366
  | |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   367
  | o  1: 112478962961 B
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   368
  |/
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   369
  o  0: 426bada5c675 A
34023
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
   370
  
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   371
Massively rewrite the DAG:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   372
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   373
  $ rebasewithdag -r 'all()' -d 'map(SRC, "A:I,I:null,H:A,B:J,J:C,C:H,D:E,F:G,G:K,K:D,E:B")' <<'EOS'
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   374
  > D G K
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   375
  > | | |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   376
  > C F J
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   377
  > | | |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   378
  > B E I
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   379
  >  \| |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   380
  >   A H
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   381
  > EOS
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   382
  rebasing 4:701514e1408d I "I"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   383
  rebasing 0:426bada5c675 A "A"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   384
  rebasing 1:e7050b6e5048 H "H"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   385
  rebasing 5:26805aba1e60 C "C"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   386
  rebasing 7:cf89f86b485b J "J"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   387
  rebasing 2:112478962961 B "B"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   388
  rebasing 3:7fb047a69f22 E "E"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   389
  rebasing 8:f585351a92f8 D "D"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   390
  rebasing 10:ae41898d7875 K tip "K"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   391
  rebasing 9:711f53bbef0b G "G"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   392
  rebasing 6:64a8289d2492 F "F"
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   393
  o  21: 3735afb3713a F
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   394
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   395
  o  20: 07698142d7a7 G
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   396
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   397
  o  19: 33aba52e7e72 K
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   398
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   399
  o  18: 9fdae89dc5a1 D
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   400
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   401
  o  17: 277dda9a65ee E
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   402
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   403
  o  16: 9c74fd8657ad B
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   404
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   405
  o  15: 6527eb0688bb J
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   406
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   407
  o  14: e94d655b928d C
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   408
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   409
  o  13: 620d6d349459 H
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   410
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   411
  o  12: a569a116758f A
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   412
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   413
  o  11: 2bf1302f5c18 I
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   414
  
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   415
Resolve instability:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   416
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   417
  $ rebasewithdag <<'EOF' -r 'orphan()-obsolete()' -d 'max((successors(max(roots(ALLSRC) & ::SRC)^)-obsolete())::)'
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   418
  >      F2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   419
  >      |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   420
  >    J E E2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   421
  >    | |/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   422
  > I2 I | E3
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   423
  >   \| |/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   424
  >    H | G
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   425
  >    | | |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   426
  >   B2 D F
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   427
  >    | |/         # rebase: B -> B2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   428
  >    N C          # amend: E -> E2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   429
  >    | |          # amend: E2 -> E3
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   430
  >    M B          # rebase: F -> F2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   431
  >     \|          # amend: I -> I2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   432
  >      A
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   433
  > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35400
diff changeset
   434
  6 new orphan changesets
45794
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   435
  rebasing 16:5c432343bf59 J tip "J"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   436
  rebasing 3:26805aba1e60 C "C"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   437
  rebasing 6:f585351a92f8 D "D"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   438
  rebasing 10:ffebc37c5d0b E3 "E3"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   439
  rebasing 13:fb184bcfeee8 F2 "F2"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45150
diff changeset
   440
  rebasing 11:dc838ab4c0da G "G"
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   441
  o  22: 174f63d574a8 G
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   442
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   443
  o  21: c9d9fbe76705 F2
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   444
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   445
  o  20: 0a03c2ede755 E3
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   446
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   447
  o  19: 228d9d2541b1 D
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   448
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   449
  o  18: cd856b400c95 C
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   450
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   451
  o  17: 9148200c858c J
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   452
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   453
  o  15: eb74780f5094 I2
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   454
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   455
  o  12: 78309edd643f H
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   456
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   457
  o  5: 4b4531bd8e1d B2
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   458
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   459
  o  4: 337c285c272b N
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   460
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   461
  o  2: 699bc4b6fa22 M
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   462
  |
35394
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35296
diff changeset
   463
  o  0: 426bada5c675 A
34024
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34023
diff changeset
   464