Mercurial > hg
annotate tests/test-convert-hg-source.t @ 14889:a59058fd074a stable
hooks: redirect stdout/err/in to the ui descriptors when calling python hooks
We need to make sure that python hooks I/O goes through the ui descriptors so
it doesn't mess the command server protocol.
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Sat, 09 Jul 2011 19:06:59 +0300 |
parents | 336bb8b53ad0 |
children | db0340f4b507 |
rev | line source |
---|---|
5280
11e1e574da02
convert: mercurial_source: also search for copies in modified files
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
1 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
2 $ cat >> $HGRCPATH <<EOF |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
3 > [extensions] |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
4 > convert= |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
5 > [convert] |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
6 > hg.saverev=False |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
7 > EOF |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
8 $ hg init orig |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
9 $ cd orig |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
10 $ echo foo > foo |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
11 $ echo bar > bar |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
12 $ hg ci -qAm 'add foo bar' -d '0 0' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
13 $ echo >> foo |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
14 $ hg ci -m 'change foo' -d '1 0' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
15 $ hg up -qC 0 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
16 $ hg copy --after --force foo bar |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
17 $ hg copy foo baz |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
18 $ hg ci -m 'make bar and baz copies of foo' -d '2 0' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
19 created new head |
13866
2f93a4a10144
convert: add hg source bookmark test
Edouard Gomez <ed.gomez@free.fr>
parents:
12526
diff
changeset
|
20 $ hg bookmark premerge1 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
21 $ hg merge |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
22 merging baz and foo to baz |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
23 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
24 (branch merge, don't forget to commit) |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
25 $ hg ci -m 'merge local copy' -d '3 0' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
26 $ hg up -C 1 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
27 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
13866
2f93a4a10144
convert: add hg source bookmark test
Edouard Gomez <ed.gomez@free.fr>
parents:
12526
diff
changeset
|
28 $ hg bookmark premerge2 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
29 $ hg merge 2 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
30 merging foo and baz to baz |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
31 1 files updated, 1 files merged, 0 files removed, 0 files unresolved |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
32 (branch merge, don't forget to commit) |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
33 $ hg ci -m 'merge remote copy' -d '4 0' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
34 created new head |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
35 $ chmod +x baz |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
36 $ hg ci -m 'mark baz executable' -d '5 0' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
37 $ cd .. |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
38 $ hg convert --datesort orig new 2>&1 | grep -v 'subversion python bindings could not be loaded' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
39 initializing destination new repository |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
40 scanning source... |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
41 sorting... |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
42 converting... |
13968
82845434e974
convert: make filemap prune useless branch closing revs (issue2774)
Patrick Mezard <pmezard@gmail.com>
parents:
12526
diff
changeset
|
43 5 add foo bar |
82845434e974
convert: make filemap prune useless branch closing revs (issue2774)
Patrick Mezard <pmezard@gmail.com>
parents:
12526
diff
changeset
|
44 4 change foo |
82845434e974
convert: make filemap prune useless branch closing revs (issue2774)
Patrick Mezard <pmezard@gmail.com>
parents:
12526
diff
changeset
|
45 3 make bar and baz copies of foo |
82845434e974
convert: make filemap prune useless branch closing revs (issue2774)
Patrick Mezard <pmezard@gmail.com>
parents:
12526
diff
changeset
|
46 2 merge local copy |
82845434e974
convert: make filemap prune useless branch closing revs (issue2774)
Patrick Mezard <pmezard@gmail.com>
parents:
12526
diff
changeset
|
47 1 merge remote copy |
82845434e974
convert: make filemap prune useless branch closing revs (issue2774)
Patrick Mezard <pmezard@gmail.com>
parents:
12526
diff
changeset
|
48 0 mark baz executable |
13866
2f93a4a10144
convert: add hg source bookmark test
Edouard Gomez <ed.gomez@free.fr>
parents:
12526
diff
changeset
|
49 updating bookmarks |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
50 $ cd new |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
51 $ hg out ../orig |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
52 comparing with ../orig |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
53 searching for changes |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
54 no changes found |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
55 [1] |
13866
2f93a4a10144
convert: add hg source bookmark test
Edouard Gomez <ed.gomez@free.fr>
parents:
12526
diff
changeset
|
56 $ hg bookmarks |
2f93a4a10144
convert: add hg source bookmark test
Edouard Gomez <ed.gomez@free.fr>
parents:
12526
diff
changeset
|
57 premerge1 3:973ef48a98a4 |
13969 | 58 premerge2 5:13d9b87cf8f8 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
59 $ cd .. |
5280
11e1e574da02
convert: mercurial_source: also search for copies in modified files
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
60 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
61 check shamap LF and CRLF handling |
7231
8e7130a10f3b
convert: ignore hg source errors with hg.ignoreerrors (issue 1357)
Patrick Mezard <pmezard@gmail.com>
parents:
5811
diff
changeset
|
62 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
63 $ cat > rewrite.py <<EOF |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
64 > import sys |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
65 > # Interlace LF and CRLF |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
66 > lines = [(l.rstrip() + ((i % 2) and '\n' or '\r\n')) |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
67 > for i, l in enumerate(file(sys.argv[1]))] |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
68 > file(sys.argv[1], 'wb').write(''.join(lines)) |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
69 > EOF |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
70 $ python rewrite.py new/.hg/shamap |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
71 $ cd orig |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
72 $ hg up -qC 1 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
73 $ echo foo >> foo |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
74 $ hg ci -qm 'change foo again' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
75 $ hg up -qC 2 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
76 $ echo foo >> foo |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
77 $ hg ci -qm 'change foo again again' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
78 $ cd .. |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
79 $ hg convert --datesort orig new 2>&1 | grep -v 'subversion python bindings could not be loaded' |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
80 scanning source... |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
81 sorting... |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
82 converting... |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
83 1 change foo again again |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
84 0 change foo again |
13866
2f93a4a10144
convert: add hg source bookmark test
Edouard Gomez <ed.gomez@free.fr>
parents:
12526
diff
changeset
|
85 updating bookmarks |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
86 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
87 init broken repository |
9528
314fc589b313
convert: make mapfile handle LF and CRLF shamap (issue1846)
Patrick Mezard <pmezard@gmail.com>
parents:
7231
diff
changeset
|
88 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
89 $ hg init broken |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
90 $ cd broken |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
91 $ echo a >> a |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
92 $ echo b >> b |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
93 $ hg ci -qAm init |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
94 $ echo a >> a |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
95 $ echo b >> b |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
96 $ hg copy b c |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
97 $ hg ci -qAm changeall |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
98 $ hg up -qC 0 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
99 $ echo bc >> b |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
100 $ hg ci -m changebagain |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
101 created new head |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
102 $ HGMERGE=internal:local hg -q merge |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
103 $ hg ci -m merge |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
104 $ hg mv b d |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
105 $ hg ci -m moveb |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
106 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
107 break it |
7231
8e7130a10f3b
convert: ignore hg source errors with hg.ignoreerrors (issue 1357)
Patrick Mezard <pmezard@gmail.com>
parents:
5811
diff
changeset
|
108 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
109 $ rm .hg/store/data/b.* |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
110 $ cd .. |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
111 $ hg --config convert.hg.ignoreerrors=True convert broken fixed |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
112 initializing destination fixed repository |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
113 scanning source... |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
114 sorting... |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
115 converting... |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
116 4 init |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
117 ignoring: data/b.i@1e88685f5dde: no match found |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
118 3 changeall |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
119 2 changebagain |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
120 1 merge |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
121 0 moveb |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
122 $ hg -R fixed verify |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
123 checking changesets |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
124 checking manifests |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
125 crosschecking files in changesets and manifests |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
126 checking files |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
127 3 files, 5 changesets, 5 total revisions |
5280
11e1e574da02
convert: mercurial_source: also search for copies in modified files
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
128 |
12526
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
129 manifest -r 0 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
130 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
131 $ hg -R fixed manifest -r 0 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
132 a |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
133 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
134 manifest -r tip |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
135 |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
136 $ hg -R fixed manifest -r tip |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
137 a |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
138 c |
9892949bd969
tests: unify test-convert-hg-source
Matt Mackall <mpm@selenic.com>
parents:
11673
diff
changeset
|
139 d |