annotate tests/test-rebase-dest.t @ 49777:e1953a34c110

bundle: emit full snapshot as is, without doing a redelta With the new `forced` delta-reused policy, it become important to be able to send full snapshot where full snapshot are needed. Otherwise, the fallback delta will simply be used on the client sideā€¦ creating monstrous delta chain, since revision that are meant as a reset of delta-chain chain becoming too complex are simply adding a new full delta-tree on the leaf of another one. In the `non-forced` cases, client process full snapshot from the bundle differently from deltas, so client will still try to convert the full snapshot into a delta if possible. So this will no lead to pathological storage explosion. I have considered making this configurable, but the impact seems limited enough that it does not seems to be worth it. Especially with the current sparse-revlog format that use "delta-tree" with multiple level snapshots, full snapshot are much less frequent and not that different from other intermediate snapshot that we are already sending over the wire anyway. CPU wise, this will help the bundling side a little as it will not need to reconstruct revisions and compute deltas. The unbundling side might save a tiny amount of CPU as it won't need to reconstruct the delta-base to reconstruct the revision full text. This only slightly visible in some of the benchmarks. And have no real impact on most of them. ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = perf-bundle # benchmark.variants.revs = last-40000 before: 11.467186 seconds just-emit-full: 11.190576 seconds (-2.41%) with-pull-force: 11.041091 seconds (-3.72%) # benchmark.name = perf-unbundle # benchmark.variants.revs = last-40000 before: 16.744862 just-emit-full:: 16.561036 seconds (-1.10%) with-pull-force: 16.389344 seconds (-2.12%) # benchmark.name = pull # benchmark.variants.revs = last-40000 before: 26.870569 just-emit-full: 26.391188 seconds (-1.78%) with-pull-force: 25.633184 seconds (-4.60%) Space wise (so network-wise) the impact is fairly small. When taking compression into account. Below are tests the size of `hg bundle --all` for a handful of benchmark repositories (with bzip, zstd compression and without it) This show a small increase in the bundle size, but nothing really significant except maybe for mozilla-try (+12%) that nobody really pulls large chunk of anyway. Mozilla-try is also the repository that benefit the most for not having to recompute deltas client size. ### mercurial: bzip-before: 26 406 342 bytes bzip-after: 26 691 543 bytes +1.08% zstd-before: 27 918 645 bytes zstd-after: 28 075 896 bytes +0.56% none-before: 98 675 601 bytes none-after: 100 411 237 bytes +1.76% ### pypy bzip-before: 201 295 752 bytes bzip-after: 209 780 282 bytes +4.21% zstd-before: 202 974 795 bytes zstd-after: 205 165 780 bytes +1.08% none-before: 871 070 261 bytes none-after: 993 595 057 bytes +14.07% ### netbeans bzip-before: 601 314 330 bytes bzip-after: 614 246 241 bytes +2.15% zstd-before: 604 745 136 bytes zstd-after: 615 497 705 bytes +1.78% none-before: 3 338 238 571 bytes none-after: 3 439 422 535 bytes +3.03% ### mozilla-central bzip-before: 1 493 006 921 bytes bzip-after: 1 549 650 570 bytes +3.79% zstd-before: 1 481 910 102 bytes zstd-after: 1 513 052 415 bytes +2.10% none-before: 6 535 929 910 bytes none-after: 7 010 191 342 bytes +7.26% ### mozilla-try bzip-before: 6 583 425 999 bytes bzip-after: 7 423 536 928 bytes +12.76% zstd-before: 6 021 009 212 bytes zstd-after: 6 674 922 420 bytes +10.86% none-before: 22 954 739 558 bytes none-after: 26 013 854 771 bytes +13.32%
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 07 Dec 2022 20:12:23 +0100
parents 42d2b31cee0b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31729
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)
46632
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45906
diff changeset
21 [10]
31729
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
22 $ hg rebase -d 1
45771
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"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
24 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/5db65b93a12b-4fb789ec-rebase.hg
31729
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
45771
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"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
28 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/889b0bc6a730-41ec4f81-rebase.hg
31729
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
45771
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"
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35385
diff changeset
32 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/279de9495438-ab0a5128-rebase.hg
31729
c069c4e271e3 rebase: move destination test to new test file
Ryan McElroy <rmcelroy@fb.com>
parents:
diff changeset
33
31730
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
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: 31729
diff changeset
35 $ hg up 1 -q
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
36 $ echo d >> c
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
37 $ hg commit -qAm dc
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
38 $ hg log -G -T '{rev} {desc}'
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
39 @ 3 dc
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
40 |
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
41 | o 2 cc
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
42 |/
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
43 o 1 bb
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
44 |
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
45 o 0 aa
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
46
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
47 $ hg rebase -d 2
45771
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"
31730
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
49 merging c
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
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: 44556
diff changeset
51 unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
45826
21733e8c924f errors: add config that lets user get more detailed exit codes
Martin von Zweigbergk <martinvonz@google.com>
parents: 45771
diff changeset
52 [240]
31730
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
53 $ echo d > c
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
54 $ hg resolve --mark --all
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
55 (no more unresolved files)
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
56 continue: hg rebase --continue
6931c3346551 rebase: test to show brokenness with requiredest
Ryan McElroy <rmcelroy@fb.com>
parents: 31729
diff changeset
57 $ hg rebase --continue
45771
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"
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/repo/.hg/strip-backup/0537f6b50def-be4c7386-rebase.hg
31732
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
60
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
61 $ cd ..
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
62
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
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: 31731
diff changeset
64 $ hg clone repo clone
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
65 updating to branch default
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
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: 31731
diff changeset
67 $ cd repo
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
68 $ echo e > e
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
69 $ hg commit -qAm ee
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
70 $ cd ..
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
71 $ cd clone
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
72 $ echo f > f
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
73 $ hg commit -qAm ff
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
74 $ hg pull --rebase
31733
ae6bab095c66 rebase: abort hg pull --rebase if rebase.requiredest is set (issue5514)
Ryan McElroy <rmcelroy@fb.com>
parents: 31732
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: 31732
diff changeset
76 (use hg pull followed by hg rebase -d DEST)
46632
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45906
diff changeset
77 [10]
31732
9ddf875183b0 rebase: demonstrate behavior with requiredest and pull --rebase
Ryan McElroy <rmcelroy@fb.com>
parents: 31731
diff changeset
78
34005
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 = {}
36272
164ed6d54fdf tests: add b prefixes to test-rebase-dest.t
Augie Fackler <augie@google.com>
parents: 35709
diff changeset
87 > @revsetpredicate(b'map')
34005
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)"""
36272
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'')
34005
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)
36272
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','))
34005
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)
36272
164ed6d54fdf tests: add b prefixes to test-rebase-dest.t
Augie Fackler <augie@google.com>
parents: 35709
diff changeset
97 > if newdesc == b'null':
34005
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:
36272
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)
34005
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]
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
113 > tglog = log -G --template "{rev}: {node|short} {desc} {instabilities}" -r 'sort(all(), topo)'
34005
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: 34006
diff changeset
117 > evolution=true
34005
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() {
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 36272
diff changeset
121 > N=`"$PYTHON" -c "print($N+1)"`
34005
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
46632
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45906
diff changeset
154 [10]
34005
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
44556
f63598aa1c4b rebase: accept multiple --base arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents: 44555
diff changeset
158 $ rebasewithdag -b B -b E -d 'SRC^^' --collapse <<'EOS'
34005
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
45906
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 45826
diff changeset
163 abort: unknown revision 'SRC'
48118
5105a9975407 errors: raise InputError from revsingle() iff revset provided by the user
Martin von Zweigbergk <martinvonz@google.com>
parents: 46632
diff changeset
164 [10]
34005
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
45771
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"
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
176 o 4: d8d8601abd5e D
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
177
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
178 o 2: dc0947a82db8 C
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
179 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
180 | o 1: fc2b737bb2e5 B
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
181 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
182 o 0: 426bada5c675 A
34005
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
46632
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45906
diff changeset
194 [10]
34005
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
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
205 abort: source and destination form a cycle
46632
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45906
diff changeset
206 [10]
34005
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: 39707
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: 39707
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: 39707
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: 39707
diff changeset
211 > |
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39707
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: 39707
diff changeset
213 > |
8890fce7c13d rebase: demonstrate bug in dry-run mode which causes cycles to not be reported
Augie Fackler <augie@google.com>
parents: 39707
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: 39707
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: 39707
diff changeset
217 starting dry-run rebase; repository will not be changed
46632
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45906
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: 39707
diff changeset
219
34005
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
45771
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"
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
233 o 9: d150ff263fc8 F
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
234 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
235 o 8: 66f30a1a2eab E
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
236 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
237 | o 7: 93db94ffae0e C
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
238 | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
239 | o 6: d0071c3b0c88 B
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
240 | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
241 | o 1: 058c1e1fb10a D
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
242 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
243 o 0: 426bada5c675 A
34005
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
45771
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"
44341
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
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
259 |\
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
260 | o 7: 2ed0c8546285 B
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
261 | |\
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
262 o | | 5: 8fdb2c1feb20 G
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
263 | | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
264 | | o 4: cd488e83d208 E
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
265 | | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
266 o | | 2: a6661b868de9 F
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
267 / /
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
268 | o 1: 058c1e1fb10a D
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
269 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
270 o 0: 426bada5c675 A
34005
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
44555
05654ea5137c rebase: accept multiple --source arguments (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents: 44341
diff changeset
274 $ rebasewithdag -s E -s F -s G -d 'SRC^^' <<'EOS'
34005
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
45771
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"
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
288 o 10: b3d84c6666cf H
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
289 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
290 | o 5: f585351a92f8 D
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
291 |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
292 o 3: 26805aba1e60 C
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
293 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
294 | o 9: f7c28a1a15e2 G
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
295 |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
296 o 1: 112478962961 B
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
297 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
298 | o 8: 02aa697facf7 F
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
299 |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
300 | o 2: 7fb047a69f22 E
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
301 |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
302 o 0: 426bada5c675 A
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
303
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
304 Source overlaps with destination:
34005
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
45771
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"
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
313 o 5: 5fe9935d5222 B
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
314 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
315 o 4: 12d20731b9e0 C
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
316 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
317 o 3: b18e25de2cf5 D
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
318 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
319 o 0: 426bada5c675 A
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
320
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
321 Detect cycles early:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
322
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
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: 34005
diff changeset
324 > A B C
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
325 > \|/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
326 > | D
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
327 > |/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
328 > Z
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
329 > EOS
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
330 abort: source and destination form a cycle
46632
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45906
diff changeset
331 [10]
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
332
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
333 Detect source is ancestor of dest in runtime:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
334
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
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: 34005
diff changeset
336 > D
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
337 > |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
338 > B C
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
339 > \|
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
340 > A
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
341 > EOS
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
342 abort: source is ancestor of destination
46632
9989a276712f errors: use more specific errors in rebase extension
Martin von Zweigbergk <martinvonz@google.com>
parents: 45906
diff changeset
343 [10]
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
344
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
345 "Already rebased" fast path still works:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
346
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
347 $ rebasewithdag -r 'all()' -d 'SRC^' <<'EOS'
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
348 > E F
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
349 > /| |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
350 > B C D
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
351 > \|/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
352 > A
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
353 > EOS
45771
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"
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
359 o 5: ad6717a6a58e F
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
360 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
361 o 3: b18e25de2cf5 D
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
362 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
363 | o 4: 312782b8f06e E
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
364 | |\
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
365 +---o 2: dc0947a82db8 C
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
366 | |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
367 | o 1: 112478962961 B
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
368 |/
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
369 o 0: 426bada5c675 A
34005
5e83a8fe6bc4 rebase: initial support for multiple destinations
Jun Wu <quark@fb.com>
parents: 33332
diff changeset
370
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
371 Massively rewrite the DAG:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
372
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
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: 34005
diff changeset
374 > D G K
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
375 > | | |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
376 > C F J
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
377 > | | |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
378 > B E I
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
379 > \| |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
380 > A H
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
381 > EOS
45771
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"
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
393 o 21: 3735afb3713a F
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
394 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
395 o 20: 07698142d7a7 G
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
396 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
397 o 19: 33aba52e7e72 K
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
398 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
399 o 18: 9fdae89dc5a1 D
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
400 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
401 o 17: 277dda9a65ee E
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
402 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
403 o 16: 9c74fd8657ad B
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
404 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
405 o 15: 6527eb0688bb J
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
406 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
407 o 14: e94d655b928d C
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
408 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
409 o 13: 620d6d349459 H
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
410 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
411 o 12: a569a116758f A
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
412 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
413 o 11: 2bf1302f5c18 I
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
414
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
415 Resolve instability:
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
416
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
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: 34005
diff changeset
418 > F2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
419 > |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
420 > J E E2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
421 > | |/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
422 > I2 I | E3
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
423 > \| |/
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
424 > H | G
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
425 > | | |
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
426 > B2 D F
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
427 > | |/ # rebase: B -> B2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
428 > N C # amend: E -> E2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
429 > | | # amend: E2 -> E3
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
430 > M B # rebase: F -> F2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
431 > \| # amend: I -> I2
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
432 > A
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
433 > EOF
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35393
diff changeset
434 6 new orphan changesets
45771
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"
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
441 o 22: 174f63d574a8 G
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
442 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
443 o 21: c9d9fbe76705 F2
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
444 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
445 o 20: 0a03c2ede755 E3
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
446 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
447 o 19: 228d9d2541b1 D
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
448 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
449 o 18: cd856b400c95 C
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
450 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
451 o 17: 9148200c858c J
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
452 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
453 o 15: eb74780f5094 I2
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
454 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
455 o 12: 78309edd643f H
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
456 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
457 o 5: 4b4531bd8e1d B2
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
458 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
459 o 4: 337c285c272b N
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
460 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
461 o 2: 699bc4b6fa22 M
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
462 |
35385
469b06b4c3ca tests: add commit hashes to log commands in rebase tests
Phil Cohen <phillco@fb.com>
parents: 35287
diff changeset
463 o 0: 426bada5c675 A
34006
32528419db64 rebase: sort destmap topologically
Jun Wu <quark@fb.com>
parents: 34005
diff changeset
464