annotate tests/test-convert-clonebranches.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 5abc47d4ca6b
children 42d2b31cee0b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5934
e495f3f35b2d convert: hg.clonebranches must pull missing parents (issue941)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
1
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 18373
diff changeset
2 $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 18373
diff changeset
3 > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 18373
diff changeset
4 > convert =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 18373
diff changeset
5 > [convert]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 18373
diff changeset
6 > hg.tagsbranch = 0
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 18373
diff changeset
7 > EOF
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
8 $ hg init source
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
9 $ cd source
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
10 $ echo a > a
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
11 $ hg ci -qAm adda
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
12
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
13 Add a merge with one parent in the same branch
5934
e495f3f35b2d convert: hg.clonebranches must pull missing parents (issue941)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
14
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
15 $ echo a >> a
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
16 $ hg ci -qAm changea
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
17 $ hg up -qC 0
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
18 $ hg branch branch0
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
19 marked working directory as branch branch0
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 12518
diff changeset
20 (branches are permanent and global, did you want a bookmark?)
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
21 $ echo b > b
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
22 $ hg ci -qAm addb
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
23 $ hg up -qC
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
24 $ hg merge default
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
25 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
26 (branch merge, don't forget to commit)
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
27 $ hg ci -qm mergeab
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
28 $ hg tag -ql mergeab
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
29 $ cd ..
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
30
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
31 Miss perl... sometimes
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
32
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
33 $ cat > filter.py <<EOF
33952
794f7bb739be tests: update test-convert-clonebranches to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 32940
diff changeset
34 > from __future__ import absolute_import
794f7bb739be tests: update test-convert-clonebranches to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 32940
diff changeset
35 > import re
794f7bb739be tests: update test-convert-clonebranches to pass our import checker
Augie Fackler <raf@durin42.com>
parents: 32940
diff changeset
36 > import sys
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
37 >
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
38 > r = re.compile(r'^(?:\d+|pulling from)')
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
39 > sys.stdout.writelines([l for l in sys.stdin if r.search(l)])
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
40 > EOF
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
41
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
42 convert
5934
e495f3f35b2d convert: hg.clonebranches must pull missing parents (issue941)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
43
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
44 $ hg convert -v --config convert.hg.clonebranches=1 source dest |
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 33952
diff changeset
45 > "$PYTHON" filter.py
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
46 3 adda
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
47 2 changea
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
48 1 addb
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
49 pulling from default into branch0
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
50 1 changesets found
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
51 0 mergeab
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
52 pulling from default into branch0
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
53 1 changesets found
5934
e495f3f35b2d convert: hg.clonebranches must pull missing parents (issue941)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
54
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
55 Add a merge with both parents and child in different branches
5934
e495f3f35b2d convert: hg.clonebranches must pull missing parents (issue941)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
56
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
57 $ cd source
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
58 $ hg branch branch1
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
59 marked working directory as branch branch1
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
60 $ echo a > file1
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
61 $ hg ci -qAm c1
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
62 $ hg up -qC mergeab
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
63 $ hg branch branch2
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
64 marked working directory as branch branch2
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
65 $ echo a > file2
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
66 $ hg ci -qAm c2
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
67 $ hg merge branch1
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
68 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
69 (branch merge, don't forget to commit)
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
70 $ hg branch branch3
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
71 marked working directory as branch branch3
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
72 $ hg ci -qAm c3
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
73 $ cd ..
5934
e495f3f35b2d convert: hg.clonebranches must pull missing parents (issue941)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
74
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
75 incremental conversion
5934
e495f3f35b2d convert: hg.clonebranches must pull missing parents (issue941)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
76
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
77 $ hg convert -v --config convert.hg.clonebranches=1 source dest |
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 33952
diff changeset
78 > "$PYTHON" filter.py
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
79 2 c1
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
80 pulling from branch0 into branch1
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
81 4 changesets found
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
82 1 c2
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
83 pulling from branch0 into branch2
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
84 4 changesets found
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
85 0 c3
18373
687ed69f6fdf convert: process missing branches in sorted order
Mads Kiilerich <mads@kiilerich.com>
parents: 15615
diff changeset
86 pulling from branch1 into branch3
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
87 5 changesets found
18373
687ed69f6fdf convert: process missing branches in sorted order
Mads Kiilerich <mads@kiilerich.com>
parents: 15615
diff changeset
88 pulling from branch2 into branch3
12518
89f1210a1238 tests: unify test-convert-clonebranches
Matt Mackall <mpm@selenic.com>
parents: 10119
diff changeset
89 1 changesets found