Mercurial > hg
annotate tests/test-import-context.t @ 47072:4c041c71ec01
revlog: introduce an explicit tracking of what the revlog is about
Since the dawn of time, people have been forced to rely to lossy introspection
of the index filename to determine what the purpose and role of the revlog they
encounter is. This is hacky, error prone, inflexible, abstraction-leaky,
<insert-your-own-complaints-here>.
In f63299ee7e4d Raphaël introduced a new attribute to track this information:
`revlog_kind`. However it is initialized in an odd place and various instances
end up not having it set. In addition is only tracking some of the information
we end up having to introspect in various pieces of code.
So we add a new attribute that holds more data and is more strictly enforced.
This work is done in collaboration with Raphaël.
The `revlog_kind` one will be removed/adapted in the next changeset. We expect
to be able to clean up various existing piece of code and to simplify coming
work around the newer revlog format.
Differential Revision: https://phab.mercurial-scm.org/D10352
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 06 Apr 2021 05:20:24 +0200 |
parents | 4c1b4805db57 |
children |
rev | line source |
---|---|
12825 | 1 Test applying context diffs |
2 | |
3 $ cat > writepatterns.py <<EOF | |
4 > import sys | |
5 > | |
6 > path = sys.argv[1] | |
7 > lasteol = sys.argv[2] == '1' | |
8 > patterns = sys.argv[3:] | |
9 > | |
36394
4bc983568016
py3: replace file() with open()
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32940
diff
changeset
|
10 > fp = open(path, 'wb') |
12825 | 11 > for i, pattern in enumerate(patterns): |
12 > count = int(pattern[0:-1]) | |
38365
bf953d218a91
py3: encode sys.argv to bytes using .encode()
Pulkit Goyal <7895pulkit@gmail.com>
parents:
36394
diff
changeset
|
13 > char = pattern[-1].encode('utf8') + b'\n' |
12825 | 14 > if not lasteol and i == len(patterns) - 1: |
41738
c70bdd222dcd
tests: bulk changes to avoid whitespace errors of check-code.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
40350
diff
changeset
|
15 > fp.write((char * count)[:-1]) |
12825 | 16 > else: |
41738
c70bdd222dcd
tests: bulk changes to avoid whitespace errors of check-code.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
40350
diff
changeset
|
17 > fp.write(char * count) |
12825 | 18 > fp.close() |
19 > EOF | |
20 $ cat > cat.py <<EOF | |
21 > import sys | |
45055
4c1b4805db57
pycompat: change users of pycompat.{stdin,stdout,stderr} to use procutil.std*
Manuel Jacob <me@manueljacob.de>
parents:
41738
diff
changeset
|
22 > from mercurial.utils import procutil, stringutil |
4c1b4805db57
pycompat: change users of pycompat.{stdin,stdout,stderr} to use procutil.std*
Manuel Jacob <me@manueljacob.de>
parents:
41738
diff
changeset
|
23 > procutil.stdout.write(b'%s\n' |
40350
633da7139e4a
py3: fix test-import-context.t
Matt Harbison <matt_harbison@yahoo.com>
parents:
39707
diff
changeset
|
24 > % stringutil.pprint(open(sys.argv[1], 'rb').read())) |
12825 | 25 > EOF |
26 | |
27 Initialize the test repository | |
28 | |
29 $ hg init repo | |
30 $ cd repo | |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38365
diff
changeset
|
31 $ "$PYTHON" ../writepatterns.py a 0 5A 1B 5C 1D |
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38365
diff
changeset
|
32 $ "$PYTHON" ../writepatterns.py b 1 1A 1B |
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38365
diff
changeset
|
33 $ "$PYTHON" ../writepatterns.py c 1 5A |
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38365
diff
changeset
|
34 $ "$PYTHON" ../writepatterns.py d 1 5A 1B |
12825 | 35 $ hg add |
36 adding a | |
37 adding b | |
38 adding c | |
39 adding d | |
40 $ hg ci -m addfiles | |
41 | |
42 Add file, missing a last end of line | |
43 | |
44 $ hg import --no-commit - <<EOF | |
45 > *** /dev/null 2010-10-16 18:05:49.000000000 +0200 | |
46 > --- b/newnoeol 2010-10-16 18:23:26.000000000 +0200 | |
47 > *************** | |
48 > *** 0 **** | |
49 > --- 1,2 ---- | |
50 > + a | |
51 > + b | |
52 > \ No newline at end of file | |
53 > *** a/a Sat Oct 16 16:35:51 2010 | |
54 > --- b/a Sat Oct 16 16:35:51 2010 | |
55 > *************** | |
56 > *** 3,12 **** | |
57 > A | |
58 > A | |
59 > A | |
60 > ! B | |
61 > C | |
62 > C | |
63 > C | |
64 > C | |
65 > C | |
66 > ! D | |
67 > \ No newline at end of file | |
68 > --- 3,13 ---- | |
69 > A | |
70 > A | |
71 > A | |
72 > ! E | |
73 > C | |
74 > C | |
75 > C | |
76 > C | |
77 > C | |
78 > ! F | |
79 > ! F | |
80 > | |
81 > *** a/b 2010-10-16 18:40:38.000000000 +0200 | |
82 > --- /dev/null 2010-10-16 18:05:49.000000000 +0200 | |
83 > *************** | |
84 > *** 1,2 **** | |
85 > - A | |
86 > - B | |
87 > --- 0 ---- | |
88 > *** a/c Sat Oct 16 21:34:26 2010 | |
89 > --- b/c Sat Oct 16 21:34:27 2010 | |
90 > *************** | |
91 > *** 3,5 **** | |
92 > --- 3,7 ---- | |
93 > A | |
94 > A | |
95 > A | |
96 > + B | |
97 > + B | |
98 > *** a/d Sat Oct 16 21:47:20 2010 | |
99 > --- b/d Sat Oct 16 21:47:22 2010 | |
100 > *************** | |
101 > *** 2,6 **** | |
102 > A | |
103 > A | |
104 > A | |
105 > - A | |
106 > - B | |
107 > --- 2,4 ---- | |
108 > EOF | |
109 applying patch from stdin | |
110 $ hg st | |
111 M a | |
112 M c | |
113 M d | |
114 A newnoeol | |
115 R b | |
116 | |
117 What's in a | |
118 | |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38365
diff
changeset
|
119 $ "$PYTHON" ../cat.py a |
12825 | 120 'A\nA\nA\nA\nA\nE\nC\nC\nC\nC\nC\nF\nF\n' |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38365
diff
changeset
|
121 $ "$PYTHON" ../cat.py newnoeol |
12825 | 122 'a\nb' |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38365
diff
changeset
|
123 $ "$PYTHON" ../cat.py c |
12825 | 124 'A\nA\nA\nA\nA\nB\nB\n' |
39707
5abc47d4ca6b
tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents:
38365
diff
changeset
|
125 $ "$PYTHON" ../cat.py d |
12825 | 126 'A\nA\nA\nA\n' |
127 | |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12825
diff
changeset
|
128 $ cd .. |