Mercurial > hg
annotate tests/test-revert-flags.t @ 46834:535de0e34a79
rebase: filter out descendants of divergence-causing commits earlier
`hg rebase` treats obsolete commits differently depending what has
happened to the commit:
1) Obsolete commit without non-obsolete successors: Skipped, and a
note is printed ("it has no successor").
2) Obsolete commit with a successor in the destination (ancestor of
it): Skipped, and a note is printed ("already in destination").
3) Obsolete commit with a successor in the rebase set: The commit and
its descendants are skipped, and a note is printed ("not rebasing
<commit> and its descendants as this would cause divergence"), unless
`allowdivergence` config set.
4) Obsolete commit with a successor elsewhere: Error ("this rebase
will cause divergences"), unless `allowdivergence` config set.
Before this patch, we did all those checks up front, except for (3),
which was checked later. The later check consisted of two parts: 1)
filtering out of descendants, and 2) conditionally printing message if
the `allowdivergence` config was not set. This patch makes it so we do
the filtering early.
A consequence of filtering out divergence-causing commits earlier is
that we rebase commits in slightly different order, which has some
impact on tests.
Differential Revision: https://phab.mercurial-scm.org/D10249
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 19 Mar 2021 22:52:59 -0700 |
parents | 7a9cbb315d84 |
children |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
16913
diff
changeset
|
1 #require execbit |
6030
d0dbae32517c
revert: revert clean files when only a change of flags is needed
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
2 |
12110
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
3 $ hg init repo |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
4 $ cd repo |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
5 $ echo foo > foo |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
6 $ chmod 644 foo |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
7 $ hg ci -qAm '644' |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
8 |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
9 $ chmod 755 foo |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
10 $ hg ci -qAm '755' |
6030
d0dbae32517c
revert: revert clean files when only a change of flags is needed
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
11 |
12110
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
12 reverting to rev 0 |
6030
d0dbae32517c
revert: revert clean files when only a change of flags is needed
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
13 |
12110
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
14 $ hg revert -a -r 0 |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
15 reverting foo |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
16 $ hg st |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
17 M foo |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
18 $ hg diff --git |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
19 diff --git a/foo b/foo |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
20 old mode 100755 |
58a8105242a5
tests: unify test-revert-flags
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
6030
diff
changeset
|
21 new mode 100644 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12110
diff
changeset
|
22 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12110
diff
changeset
|
23 $ cd .. |