annotate tests/test-rebase-empty-successor.t @ 48598:a6f16ec07ed7

stream-clone: add a explicit test for format change during stream clone They are different kind of requirements, the one which impact the data storage and are relevant to the files being streamed and the one which does not. For example some requirements are only relevant to the working copy, like sparse, or dirstate-v2. Since they are irrelevant to the content being streamed, they do not prevent the receiving side to use streaming clone and mercurial skip adverting them over the wire and, ideally, within the bundle. In addition, this let the client decide to use whichever format it desire for the part that does not affect the store itself. So the configuration related to these format are used as normal when doing a streaming clone. In practice, the feature was not really tested and is badly broken with bundle-2, since the requirements are not filtered out from the stream bundle. So we start with adding simple tests as a good base before the fix and adjust the feature. Differential Revision: https://phab.mercurial-scm.org/D12029
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 17 Jan 2022 18:51:47 +0100
parents f90a5c211251
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45123
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
1 $ cat << EOF >> $HGRCPATH
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
2 > [extensions]
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
3 > rebase=
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
4 > [alias]
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
5 > tglog = log -G -T "{rev} '{desc}'\n"
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
6 > EOF
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
7
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
8 $ hg init
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
9
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
10 $ echo a > a; hg add a; hg ci -m a
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
11 $ echo b > b; hg add b; hg ci -m b1
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
12 $ hg up 0 -q
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
13 $ echo b > b; hg add b; hg ci -m b2 -q
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
14
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
15 $ hg tglog
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
16 @ 2 'b2'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
17 |
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
18 | o 1 'b1'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
19 |/
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
20 o 0 'a'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
21
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
22
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
23 With rewrite.empty-successor=skip, b2 is skipped because it would become empty.
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
24
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
25 $ hg rebase -s 2 -d 1 --config rewrite.empty-successor=skip --dry-run
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
26 starting dry-run rebase; repository will not be changed
45771
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45123
diff changeset
27 rebasing 2:6e2aad5e0f3c tip "b2"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45123
diff changeset
28 note: not rebasing 2:6e2aad5e0f3c tip "b2", its destination already has all its changes
45123
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
29 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
30
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
31 With rewrite.empty-successor=keep, b2 will be recreated although it became empty.
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
32
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
33 $ hg rebase -s 2 -d 1 --config rewrite.empty-successor=keep
45771
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45123
diff changeset
34 rebasing 2:6e2aad5e0f3c tip "b2"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45123
diff changeset
35 note: created empty successor for 2:6e2aad5e0f3c tip "b2", its destination already has all its changes
45123
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
36 saved backup bundle to $TESTTMP/.hg/strip-backup/6e2aad5e0f3c-7d7c8801-rebase.hg
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
37
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
38 $ hg tglog
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
39 @ 2 'b2'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
40 |
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
41 o 1 'b1'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
42 |
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
43 o 0 'a'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
44