##// END OF EJS Templates
tests: clarify a comment describing a phabricator test scenario...
Matt Harbison -
r45667:cf3e07d7 5.4 stable
parent child Browse files
Show More
@@ -1,965 +1,965 b''
1 #require vcr
1 #require vcr
2 $ cat >> $HGRCPATH <<EOF
2 $ cat >> $HGRCPATH <<EOF
3 > [extensions]
3 > [extensions]
4 > phabricator =
4 > phabricator =
5 >
5 >
6 > [auth]
6 > [auth]
7 > hgphab.schemes = https
7 > hgphab.schemes = https
8 > hgphab.prefix = phab.mercurial-scm.org
8 > hgphab.prefix = phab.mercurial-scm.org
9 > # When working on the extension and making phabricator interaction
9 > # When working on the extension and making phabricator interaction
10 > # changes, edit this to be a real phabricator token. When done, edit
10 > # changes, edit this to be a real phabricator token. When done, edit
11 > # it back. The VCR transcripts will be auto-sanitised to replace your real
11 > # it back. The VCR transcripts will be auto-sanitised to replace your real
12 > # token with this value.
12 > # token with this value.
13 > hgphab.phabtoken = cli-hahayouwish
13 > hgphab.phabtoken = cli-hahayouwish
14 >
14 >
15 > [phabricator]
15 > [phabricator]
16 > debug = True
16 > debug = True
17 > EOF
17 > EOF
18 $ hg init repo
18 $ hg init repo
19 $ cd repo
19 $ cd repo
20 $ cat >> .hg/hgrc <<EOF
20 $ cat >> .hg/hgrc <<EOF
21 > [phabricator]
21 > [phabricator]
22 > url = https://phab.mercurial-scm.org/
22 > url = https://phab.mercurial-scm.org/
23 > callsign = HG
23 > callsign = HG
24 > EOF
24 > EOF
25 $ VCR="$TESTDIR/phabricator"
25 $ VCR="$TESTDIR/phabricator"
26
26
27 Error is handled reasonably. We override the phabtoken here so that
27 Error is handled reasonably. We override the phabtoken here so that
28 when you're developing changes to phabricator.py you can edit the
28 when you're developing changes to phabricator.py you can edit the
29 above config and have a real token in the test but not have to edit
29 above config and have a real token in the test but not have to edit
30 this test.
30 this test.
31 $ hg phabread --config auth.hgphab.phabtoken=cli-notavalidtoken \
31 $ hg phabread --config auth.hgphab.phabtoken=cli-notavalidtoken \
32 > --test-vcr "$VCR/phabread-conduit-error.json" D4480 | head
32 > --test-vcr "$VCR/phabread-conduit-error.json" D4480 | head
33 abort: Conduit Error (ERR-INVALID-AUTH): API token "cli-notavalidtoken" has the wrong length. API tokens should be 32 characters long.
33 abort: Conduit Error (ERR-INVALID-AUTH): API token "cli-notavalidtoken" has the wrong length. API tokens should be 32 characters long.
34
34
35 Missing arguments don't crash, and may print the command help
35 Missing arguments don't crash, and may print the command help
36
36
37 $ hg debugcallconduit
37 $ hg debugcallconduit
38 hg debugcallconduit: invalid arguments
38 hg debugcallconduit: invalid arguments
39 hg debugcallconduit METHOD
39 hg debugcallconduit METHOD
40
40
41 call Conduit API
41 call Conduit API
42
42
43 options:
43 options:
44
44
45 (use 'hg debugcallconduit -h' to show more help)
45 (use 'hg debugcallconduit -h' to show more help)
46 [255]
46 [255]
47 $ hg phabread
47 $ hg phabread
48 abort: empty DREVSPEC set
48 abort: empty DREVSPEC set
49 [255]
49 [255]
50
50
51 Basic phabread:
51 Basic phabread:
52 $ hg phabread --test-vcr "$VCR/phabread-4480.json" D4480 | head
52 $ hg phabread --test-vcr "$VCR/phabread-4480.json" D4480 | head
53 # HG changeset patch
53 # HG changeset patch
54 # Date 1536771503 0
54 # Date 1536771503 0
55 # Parent a5de21c9e3703f8e8eb064bd7d893ff2f703c66a
55 # Parent a5de21c9e3703f8e8eb064bd7d893ff2f703c66a
56 exchangev2: start to implement pull with wire protocol v2
56 exchangev2: start to implement pull with wire protocol v2
57
57
58 Wire protocol version 2 will take a substantially different
58 Wire protocol version 2 will take a substantially different
59 approach to exchange than version 1 (at least as far as pulling
59 approach to exchange than version 1 (at least as far as pulling
60 is concerned).
60 is concerned).
61
61
62 This commit establishes a new exchangev2 module for holding
62 This commit establishes a new exchangev2 module for holding
63
63
64 Phabread with multiple DREVSPEC
64 Phabread with multiple DREVSPEC
65
65
66 TODO: attempt to order related revisions like --stack?
66 TODO: attempt to order related revisions like --stack?
67 $ hg phabread --test-vcr "$VCR/phabread-multi-drev.json" D8205 8206 D8207 \
67 $ hg phabread --test-vcr "$VCR/phabread-multi-drev.json" D8205 8206 D8207 \
68 > | grep '^Differential Revision'
68 > | grep '^Differential Revision'
69 Differential Revision: https://phab.mercurial-scm.org/D8205
69 Differential Revision: https://phab.mercurial-scm.org/D8205
70 Differential Revision: https://phab.mercurial-scm.org/D8206
70 Differential Revision: https://phab.mercurial-scm.org/D8206
71 Differential Revision: https://phab.mercurial-scm.org/D8207
71 Differential Revision: https://phab.mercurial-scm.org/D8207
72
72
73 Empty DREVSPECs don't crash
73 Empty DREVSPECs don't crash
74
74
75 $ hg phabread --test-vcr "$VCR/phabread-empty-drev.json" D7917-D7917
75 $ hg phabread --test-vcr "$VCR/phabread-empty-drev.json" D7917-D7917
76 abort: empty DREVSPEC set
76 abort: empty DREVSPEC set
77 [255]
77 [255]
78
78
79
79
80 phabupdate with an accept:
80 phabupdate with an accept:
81 $ hg phabupdate --accept D4564 \
81 $ hg phabupdate --accept D4564 \
82 > -m 'I think I like where this is headed. Will read rest of series later.'\
82 > -m 'I think I like where this is headed. Will read rest of series later.'\
83 > --test-vcr "$VCR/accept-4564.json"
83 > --test-vcr "$VCR/accept-4564.json"
84 abort: Conduit Error (ERR-CONDUIT-CORE): Validation errors:
84 abort: Conduit Error (ERR-CONDUIT-CORE): Validation errors:
85 - You can not accept this revision because it has already been closed. Only open revisions can be accepted.
85 - You can not accept this revision because it has already been closed. Only open revisions can be accepted.
86 [255]
86 [255]
87 $ hg phabupdate --accept D7913 -m 'LGTM' --test-vcr "$VCR/accept-7913.json"
87 $ hg phabupdate --accept D7913 -m 'LGTM' --test-vcr "$VCR/accept-7913.json"
88
88
89 Create a differential diff:
89 Create a differential diff:
90 $ HGENCODING=utf-8; export HGENCODING
90 $ HGENCODING=utf-8; export HGENCODING
91 $ echo alpha > alpha
91 $ echo alpha > alpha
92 $ hg ci --addremove -m 'create alpha for phabricator test €'
92 $ hg ci --addremove -m 'create alpha for phabricator test €'
93 adding alpha
93 adding alpha
94 $ hg phabsend -r . --test-vcr "$VCR/phabsend-create-alpha.json"
94 $ hg phabsend -r . --test-vcr "$VCR/phabsend-create-alpha.json"
95 D7915 - created - d386117f30e6: create alpha for phabricator test \xe2\x82\xac (esc)
95 D7915 - created - d386117f30e6: create alpha for phabricator test \xe2\x82\xac (esc)
96 new commits: ['347bf67801e5']
96 new commits: ['347bf67801e5']
97 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d386117f30e6-24ffe649-phabsend.hg
97 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d386117f30e6-24ffe649-phabsend.hg
98 $ echo more >> alpha
98 $ echo more >> alpha
99 $ HGEDITOR=true hg ci --amend
99 $ HGEDITOR=true hg ci --amend
100 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/347bf67801e5-3bf313e4-amend.hg
100 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/347bf67801e5-3bf313e4-amend.hg
101 $ echo beta > beta
101 $ echo beta > beta
102 $ hg ci --addremove -m 'create beta for phabricator test'
102 $ hg ci --addremove -m 'create beta for phabricator test'
103 adding beta
103 adding beta
104 $ hg phabsend -r ".^::" --test-vcr "$VCR/phabsend-update-alpha-create-beta.json"
104 $ hg phabsend -r ".^::" --test-vcr "$VCR/phabsend-update-alpha-create-beta.json"
105 c44b38f24a45 mapped to old nodes []
105 c44b38f24a45 mapped to old nodes []
106 D7915 - updated - c44b38f24a45: create alpha for phabricator test \xe2\x82\xac (esc)
106 D7915 - updated - c44b38f24a45: create alpha for phabricator test \xe2\x82\xac (esc)
107 D7916 - created - 9e6901f21d5b: create beta for phabricator test
107 D7916 - created - 9e6901f21d5b: create beta for phabricator test
108 new commits: ['a692622e6937']
108 new commits: ['a692622e6937']
109 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/9e6901f21d5b-1fcd4f0e-phabsend.hg
109 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/9e6901f21d5b-1fcd4f0e-phabsend.hg
110 $ unset HGENCODING
110 $ unset HGENCODING
111
111
112 The amend won't explode after posting a public commit. The local tag is left
112 The amend won't explode after posting a public commit. The local tag is left
113 behind to identify it.
113 behind to identify it.
114
114
115 $ echo 'public change' > beta
115 $ echo 'public change' > beta
116 $ hg ci -m 'create public change for phabricator testing'
116 $ hg ci -m 'create public change for phabricator testing'
117 $ hg phase --public .
117 $ hg phase --public .
118 $ echo 'draft change' > alpha
118 $ echo 'draft change' > alpha
119 $ hg ci -m 'create draft change for phabricator testing'
119 $ hg ci -m 'create draft change for phabricator testing'
120 $ hg phabsend --amend -r '.^::' --test-vcr "$VCR/phabsend-create-public.json"
120 $ hg phabsend --amend -r '.^::' --test-vcr "$VCR/phabsend-create-public.json"
121 D7917 - created - 7b4185ab5d16: create public change for phabricator testing
121 D7917 - created - 7b4185ab5d16: create public change for phabricator testing
122 D7918 - created - 251c1c333fc6: create draft change for phabricator testing
122 D7918 - created - 251c1c333fc6: create draft change for phabricator testing
123 warning: not updating public commit 2:7b4185ab5d16
123 warning: not updating public commit 2:7b4185ab5d16
124 new commits: ['3244dc4a3334']
124 new commits: ['3244dc4a3334']
125 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/251c1c333fc6-41cb7c3b-phabsend.hg
125 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/251c1c333fc6-41cb7c3b-phabsend.hg
126 $ hg tags -v
126 $ hg tags -v
127 tip 3:3244dc4a3334
127 tip 3:3244dc4a3334
128 D7917 2:7b4185ab5d16 local
128 D7917 2:7b4185ab5d16 local
129
129
130 $ hg debugcallconduit user.search --test-vcr "$VCR/phab-conduit.json" <<EOF
130 $ hg debugcallconduit user.search --test-vcr "$VCR/phab-conduit.json" <<EOF
131 > {
131 > {
132 > "constraints": {
132 > "constraints": {
133 > "isBot": true
133 > "isBot": true
134 > }
134 > }
135 > }
135 > }
136 > EOF
136 > EOF
137 {
137 {
138 "cursor": {
138 "cursor": {
139 "after": null,
139 "after": null,
140 "before": null,
140 "before": null,
141 "limit": 100,
141 "limit": 100,
142 "order": null
142 "order": null
143 },
143 },
144 "data": [],
144 "data": [],
145 "maps": {},
145 "maps": {},
146 "query": {
146 "query": {
147 "queryKey": null
147 "queryKey": null
148 }
148 }
149 }
149 }
150
150
151 Template keywords
151 Template keywords
152 $ hg log -T'{rev} {phabreview|json}\n'
152 $ hg log -T'{rev} {phabreview|json}\n'
153 3 {"id": "D7918", "url": "https://phab.mercurial-scm.org/D7918"}
153 3 {"id": "D7918", "url": "https://phab.mercurial-scm.org/D7918"}
154 2 {"id": "D7917", "url": "https://phab.mercurial-scm.org/D7917"}
154 2 {"id": "D7917", "url": "https://phab.mercurial-scm.org/D7917"}
155 1 {"id": "D7916", "url": "https://phab.mercurial-scm.org/D7916"}
155 1 {"id": "D7916", "url": "https://phab.mercurial-scm.org/D7916"}
156 0 {"id": "D7915", "url": "https://phab.mercurial-scm.org/D7915"}
156 0 {"id": "D7915", "url": "https://phab.mercurial-scm.org/D7915"}
157
157
158 $ hg log -T'{rev} {if(phabreview, "{phabreview.url} {phabreview.id}")}\n'
158 $ hg log -T'{rev} {if(phabreview, "{phabreview.url} {phabreview.id}")}\n'
159 3 https://phab.mercurial-scm.org/D7918 D7918
159 3 https://phab.mercurial-scm.org/D7918 D7918
160 2 https://phab.mercurial-scm.org/D7917 D7917
160 2 https://phab.mercurial-scm.org/D7917 D7917
161 1 https://phab.mercurial-scm.org/D7916 D7916
161 1 https://phab.mercurial-scm.org/D7916 D7916
162 0 https://phab.mercurial-scm.org/D7915 D7915
162 0 https://phab.mercurial-scm.org/D7915 D7915
163
163
164 Commenting when phabsending:
164 Commenting when phabsending:
165 $ echo comment > comment
165 $ echo comment > comment
166 $ hg ci --addremove -m "create comment for phabricator test"
166 $ hg ci --addremove -m "create comment for phabricator test"
167 adding comment
167 adding comment
168 $ hg phabsend -r . -m "For default branch" --test-vcr "$VCR/phabsend-comment-created.json"
168 $ hg phabsend -r . -m "For default branch" --test-vcr "$VCR/phabsend-comment-created.json"
169 D7919 - created - d5dddca9023d: create comment for phabricator test
169 D7919 - created - d5dddca9023d: create comment for phabricator test
170 new commits: ['f7db812bbe1d']
170 new commits: ['f7db812bbe1d']
171 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d5dddca9023d-adf673ba-phabsend.hg
171 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d5dddca9023d-adf673ba-phabsend.hg
172 $ echo comment2 >> comment
172 $ echo comment2 >> comment
173 $ hg ci --amend
173 $ hg ci --amend
174 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/f7db812bbe1d-8fcded77-amend.hg
174 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/f7db812bbe1d-8fcded77-amend.hg
175 $ hg phabsend -r . -m "Address review comments" --test-vcr "$VCR/phabsend-comment-updated.json"
175 $ hg phabsend -r . -m "Address review comments" --test-vcr "$VCR/phabsend-comment-updated.json"
176 1849d7828727 mapped to old nodes []
176 1849d7828727 mapped to old nodes []
177 D7919 - updated - 1849d7828727: create comment for phabricator test
177 D7919 - updated - 1849d7828727: create comment for phabricator test
178
178
179 Phabsending a skipped commit:
179 Phabsending a skipped commit:
180 $ hg phabsend --no-amend -r . --test-vcr "$VCR/phabsend-skipped.json"
180 $ hg phabsend --no-amend -r . --test-vcr "$VCR/phabsend-skipped.json"
181 1849d7828727 mapped to old nodes ['1849d7828727']
181 1849d7828727 mapped to old nodes ['1849d7828727']
182 D7919 - skipped - 1849d7828727: create comment for phabricator test
182 D7919 - skipped - 1849d7828727: create comment for phabricator test
183
183
184 Phabsend doesn't create an instability when rebasing existing revisions on top
184 Phabsend doesn't create an instability when restacking existing revisions on top
185 of new revisions.
185 of new revisions.
186
186
187 $ hg init reorder
187 $ hg init reorder
188 $ cd reorder
188 $ cd reorder
189 $ cat >> .hg/hgrc <<EOF
189 $ cat >> .hg/hgrc <<EOF
190 > [phabricator]
190 > [phabricator]
191 > url = https://phab.mercurial-scm.org/
191 > url = https://phab.mercurial-scm.org/
192 > callsign = HG
192 > callsign = HG
193 > [experimental]
193 > [experimental]
194 > evolution = all
194 > evolution = all
195 > EOF
195 > EOF
196
196
197 $ echo "add" > file1.txt
197 $ echo "add" > file1.txt
198 $ hg ci -Aqm 'added'
198 $ hg ci -Aqm 'added'
199 $ echo "mod1" > file1.txt
199 $ echo "mod1" > file1.txt
200 $ hg ci -m 'modified 1'
200 $ hg ci -m 'modified 1'
201 $ echo "mod2" > file1.txt
201 $ echo "mod2" > file1.txt
202 $ hg ci -m 'modified 2'
202 $ hg ci -m 'modified 2'
203 $ hg phabsend -r . --test-vcr "$VCR/phabsend-add-parent-setup.json"
203 $ hg phabsend -r . --test-vcr "$VCR/phabsend-add-parent-setup.json"
204 D8433 - created - 5d3959e20d1d: modified 2
204 D8433 - created - 5d3959e20d1d: modified 2
205 new commits: ['2b4aa8a88d61']
205 new commits: ['2b4aa8a88d61']
206 $ hg log -G -T compact
206 $ hg log -G -T compact
207 @ 3[tip]:1 2b4aa8a88d61 1970-01-01 00:00 +0000 test
207 @ 3[tip]:1 2b4aa8a88d61 1970-01-01 00:00 +0000 test
208 | modified 2
208 | modified 2
209 |
209 |
210 o 1 d549263bcb2d 1970-01-01 00:00 +0000 test
210 o 1 d549263bcb2d 1970-01-01 00:00 +0000 test
211 | modified 1
211 | modified 1
212 |
212 |
213 o 0 5cbade24e0fa 1970-01-01 00:00 +0000 test
213 o 0 5cbade24e0fa 1970-01-01 00:00 +0000 test
214 added
214 added
215
215
216 Also check that it doesn't create more orphans outside of the stack
216 Also check that it doesn't create more orphans outside of the stack
217
217
218 $ hg up -q 1
218 $ hg up -q 1
219 $ echo "mod3" > file1.txt
219 $ echo "mod3" > file1.txt
220 $ hg ci -m 'modified 3'
220 $ hg ci -m 'modified 3'
221 created new head
221 created new head
222 $ hg up -q 3
222 $ hg up -q 3
223 $ hg phabsend -r ".^ + ." --test-vcr "$VCR/phabsend-add-parent.json"
223 $ hg phabsend -r ".^ + ." --test-vcr "$VCR/phabsend-add-parent.json"
224 2b4aa8a88d61 mapped to old nodes ['2b4aa8a88d61']
224 2b4aa8a88d61 mapped to old nodes ['2b4aa8a88d61']
225 D8434 - created - d549263bcb2d: modified 1
225 D8434 - created - d549263bcb2d: modified 1
226 D8433 - updated - 2b4aa8a88d61: modified 2
226 D8433 - updated - 2b4aa8a88d61: modified 2
227 new commits: ['876a60d024de']
227 new commits: ['876a60d024de']
228 new commits: ['0c6523cb1d0f']
228 new commits: ['0c6523cb1d0f']
229 restabilizing 1eda4bf55021 as d2c78c3a3e01
229 restabilizing 1eda4bf55021 as d2c78c3a3e01
230 $ hg log -G -T compact
230 $ hg log -G -T compact
231 o 7[tip]:5 d2c78c3a3e01 1970-01-01 00:00 +0000 test
231 o 7[tip]:5 d2c78c3a3e01 1970-01-01 00:00 +0000 test
232 | modified 3
232 | modified 3
233 |
233 |
234 | @ 6 0c6523cb1d0f 1970-01-01 00:00 +0000 test
234 | @ 6 0c6523cb1d0f 1970-01-01 00:00 +0000 test
235 |/ modified 2
235 |/ modified 2
236 |
236 |
237 o 5:0 876a60d024de 1970-01-01 00:00 +0000 test
237 o 5:0 876a60d024de 1970-01-01 00:00 +0000 test
238 | modified 1
238 | modified 1
239 |
239 |
240 o 0 5cbade24e0fa 1970-01-01 00:00 +0000 test
240 o 0 5cbade24e0fa 1970-01-01 00:00 +0000 test
241 added
241 added
242
242
243 Posting obsolete commits is disallowed
243 Posting obsolete commits is disallowed
244
244
245 $ echo "mod3" > file1.txt
245 $ echo "mod3" > file1.txt
246 $ hg ci -m 'modified A'
246 $ hg ci -m 'modified A'
247 $ echo "mod4" > file1.txt
247 $ echo "mod4" > file1.txt
248 $ hg ci -m 'modified B'
248 $ hg ci -m 'modified B'
249
249
250 $ hg up '.^'
250 $ hg up '.^'
251 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
251 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
252 $ echo 'obsolete' > file1.txt
252 $ echo 'obsolete' > file1.txt
253 $ hg amend --config extensions.amend=
253 $ hg amend --config extensions.amend=
254 1 new orphan changesets
254 1 new orphan changesets
255 $ hg log -G
255 $ hg log -G
256 @ changeset: 10:082be6c94150
256 @ changeset: 10:082be6c94150
257 | tag: tip
257 | tag: tip
258 | parent: 6:0c6523cb1d0f
258 | parent: 6:0c6523cb1d0f
259 | user: test
259 | user: test
260 | date: Thu Jan 01 00:00:00 1970 +0000
260 | date: Thu Jan 01 00:00:00 1970 +0000
261 | summary: modified A
261 | summary: modified A
262 |
262 |
263 | * changeset: 9:a67643f48146
263 | * changeset: 9:a67643f48146
264 | | user: test
264 | | user: test
265 | | date: Thu Jan 01 00:00:00 1970 +0000
265 | | date: Thu Jan 01 00:00:00 1970 +0000
266 | | instability: orphan
266 | | instability: orphan
267 | | summary: modified B
267 | | summary: modified B
268 | |
268 | |
269 | x changeset: 8:db79727cb2f7
269 | x changeset: 8:db79727cb2f7
270 |/ parent: 6:0c6523cb1d0f
270 |/ parent: 6:0c6523cb1d0f
271 | user: test
271 | user: test
272 | date: Thu Jan 01 00:00:00 1970 +0000
272 | date: Thu Jan 01 00:00:00 1970 +0000
273 | obsolete: rewritten using amend as 10:082be6c94150
273 | obsolete: rewritten using amend as 10:082be6c94150
274 | summary: modified A
274 | summary: modified A
275 |
275 |
276 | o changeset: 7:d2c78c3a3e01
276 | o changeset: 7:d2c78c3a3e01
277 | | parent: 5:876a60d024de
277 | | parent: 5:876a60d024de
278 | | user: test
278 | | user: test
279 | | date: Thu Jan 01 00:00:00 1970 +0000
279 | | date: Thu Jan 01 00:00:00 1970 +0000
280 | | summary: modified 3
280 | | summary: modified 3
281 | |
281 | |
282 o | changeset: 6:0c6523cb1d0f
282 o | changeset: 6:0c6523cb1d0f
283 |/ user: test
283 |/ user: test
284 | date: Thu Jan 01 00:00:00 1970 +0000
284 | date: Thu Jan 01 00:00:00 1970 +0000
285 | summary: modified 2
285 | summary: modified 2
286 |
286 |
287 o changeset: 5:876a60d024de
287 o changeset: 5:876a60d024de
288 | parent: 0:5cbade24e0fa
288 | parent: 0:5cbade24e0fa
289 | user: test
289 | user: test
290 | date: Thu Jan 01 00:00:00 1970 +0000
290 | date: Thu Jan 01 00:00:00 1970 +0000
291 | summary: modified 1
291 | summary: modified 1
292 |
292 |
293 o changeset: 0:5cbade24e0fa
293 o changeset: 0:5cbade24e0fa
294 user: test
294 user: test
295 date: Thu Jan 01 00:00:00 1970 +0000
295 date: Thu Jan 01 00:00:00 1970 +0000
296 summary: added
296 summary: added
297
297
298 $ hg phabsend -r 5::
298 $ hg phabsend -r 5::
299 abort: obsolete commits cannot be posted for review
299 abort: obsolete commits cannot be posted for review
300 [255]
300 [255]
301
301
302 Don't restack existing orphans
302 Don't restack existing orphans
303
303
304 $ hg phabsend -r 5::tip --test-vcr "$VCR/phabsend-no-restack-orphan.json"
304 $ hg phabsend -r 5::tip --test-vcr "$VCR/phabsend-no-restack-orphan.json"
305 876a60d024de mapped to old nodes ['876a60d024de']
305 876a60d024de mapped to old nodes ['876a60d024de']
306 0c6523cb1d0f mapped to old nodes ['0c6523cb1d0f']
306 0c6523cb1d0f mapped to old nodes ['0c6523cb1d0f']
307 D8434 - updated - 876a60d024de: modified 1
307 D8434 - updated - 876a60d024de: modified 1
308 D8433 - updated - 0c6523cb1d0f: modified 2
308 D8433 - updated - 0c6523cb1d0f: modified 2
309 D8435 - created - 082be6c94150: modified A
309 D8435 - created - 082be6c94150: modified A
310 new commits: ['b5913193c805']
310 new commits: ['b5913193c805']
311 not restabilizing unchanged d2c78c3a3e01
311 not restabilizing unchanged d2c78c3a3e01
312 $ hg log -G
312 $ hg log -G
313 @ changeset: 11:b5913193c805
313 @ changeset: 11:b5913193c805
314 | tag: tip
314 | tag: tip
315 | parent: 6:0c6523cb1d0f
315 | parent: 6:0c6523cb1d0f
316 | user: test
316 | user: test
317 | date: Thu Jan 01 00:00:00 1970 +0000
317 | date: Thu Jan 01 00:00:00 1970 +0000
318 | summary: modified A
318 | summary: modified A
319 |
319 |
320 | * changeset: 9:a67643f48146
320 | * changeset: 9:a67643f48146
321 | | user: test
321 | | user: test
322 | | date: Thu Jan 01 00:00:00 1970 +0000
322 | | date: Thu Jan 01 00:00:00 1970 +0000
323 | | instability: orphan
323 | | instability: orphan
324 | | summary: modified B
324 | | summary: modified B
325 | |
325 | |
326 | x changeset: 8:db79727cb2f7
326 | x changeset: 8:db79727cb2f7
327 |/ parent: 6:0c6523cb1d0f
327 |/ parent: 6:0c6523cb1d0f
328 | user: test
328 | user: test
329 | date: Thu Jan 01 00:00:00 1970 +0000
329 | date: Thu Jan 01 00:00:00 1970 +0000
330 | obsolete: rewritten using amend, phabsend as 11:b5913193c805
330 | obsolete: rewritten using amend, phabsend as 11:b5913193c805
331 | summary: modified A
331 | summary: modified A
332 |
332 |
333 | o changeset: 7:d2c78c3a3e01
333 | o changeset: 7:d2c78c3a3e01
334 | | parent: 5:876a60d024de
334 | | parent: 5:876a60d024de
335 | | user: test
335 | | user: test
336 | | date: Thu Jan 01 00:00:00 1970 +0000
336 | | date: Thu Jan 01 00:00:00 1970 +0000
337 | | summary: modified 3
337 | | summary: modified 3
338 | |
338 | |
339 o | changeset: 6:0c6523cb1d0f
339 o | changeset: 6:0c6523cb1d0f
340 |/ user: test
340 |/ user: test
341 | date: Thu Jan 01 00:00:00 1970 +0000
341 | date: Thu Jan 01 00:00:00 1970 +0000
342 | summary: modified 2
342 | summary: modified 2
343 |
343 |
344 o changeset: 5:876a60d024de
344 o changeset: 5:876a60d024de
345 | parent: 0:5cbade24e0fa
345 | parent: 0:5cbade24e0fa
346 | user: test
346 | user: test
347 | date: Thu Jan 01 00:00:00 1970 +0000
347 | date: Thu Jan 01 00:00:00 1970 +0000
348 | summary: modified 1
348 | summary: modified 1
349 |
349 |
350 o changeset: 0:5cbade24e0fa
350 o changeset: 0:5cbade24e0fa
351 user: test
351 user: test
352 date: Thu Jan 01 00:00:00 1970 +0000
352 date: Thu Jan 01 00:00:00 1970 +0000
353 summary: added
353 summary: added
354
354
355 $ cd ..
355 $ cd ..
356
356
357 Phabesending a new binary, a modified binary, and a removed binary
357 Phabesending a new binary, a modified binary, and a removed binary
358
358
359 >>> open('bin', 'wb').write(b'\0a') and None
359 >>> open('bin', 'wb').write(b'\0a') and None
360 $ hg ci -Am 'add binary'
360 $ hg ci -Am 'add binary'
361 adding bin
361 adding bin
362 >>> open('bin', 'wb').write(b'\0b') and None
362 >>> open('bin', 'wb').write(b'\0b') and None
363 $ hg ci -m 'modify binary'
363 $ hg ci -m 'modify binary'
364 $ hg rm bin
364 $ hg rm bin
365 $ hg ci -m 'remove binary'
365 $ hg ci -m 'remove binary'
366 $ hg phabsend -r .~2:: --test-vcr "$VCR/phabsend-binary.json"
366 $ hg phabsend -r .~2:: --test-vcr "$VCR/phabsend-binary.json"
367 uploading bin@aa24a81f55de
367 uploading bin@aa24a81f55de
368 D8007 - created - aa24a81f55de: add binary
368 D8007 - created - aa24a81f55de: add binary
369 uploading bin@d8d62a881b54
369 uploading bin@d8d62a881b54
370 D8008 - created - d8d62a881b54: modify binary
370 D8008 - created - d8d62a881b54: modify binary
371 D8009 - created - af55645b2e29: remove binary
371 D8009 - created - af55645b2e29: remove binary
372 new commits: ['b8139fbb4a57']
372 new commits: ['b8139fbb4a57']
373 new commits: ['c88ce4c2d2ad']
373 new commits: ['c88ce4c2d2ad']
374 new commits: ['75dbbc901145']
374 new commits: ['75dbbc901145']
375 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/aa24a81f55de-a3a0cf24-phabsend.hg
375 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/aa24a81f55de-a3a0cf24-phabsend.hg
376
376
377 Phabsend a renamed binary and a copied binary, with and without content changes
377 Phabsend a renamed binary and a copied binary, with and without content changes
378 to src and dest
378 to src and dest
379
379
380 >>> open('bin2', 'wb').write(b'\0c') and None
380 >>> open('bin2', 'wb').write(b'\0c') and None
381 $ hg ci -Am 'add another binary'
381 $ hg ci -Am 'add another binary'
382 adding bin2
382 adding bin2
383
383
384 TODO: "bin2" can't be viewed in this commit (left or right side), and the URL
384 TODO: "bin2" can't be viewed in this commit (left or right side), and the URL
385 looks much different than when viewing "bin2_moved". No idea if this is a phab
385 looks much different than when viewing "bin2_moved". No idea if this is a phab
386 bug, or phabsend bug. The patch (as printed by phabread) look reasonable
386 bug, or phabsend bug. The patch (as printed by phabread) look reasonable
387 though.
387 though.
388
388
389 $ hg mv bin2 bin2_moved
389 $ hg mv bin2 bin2_moved
390 $ hg ci -m "moved binary"
390 $ hg ci -m "moved binary"
391
391
392 Note: "bin2_moved" is also not viewable in phabricator with this review
392 Note: "bin2_moved" is also not viewable in phabricator with this review
393
393
394 $ hg cp bin2_moved bin2_copied
394 $ hg cp bin2_moved bin2_copied
395 $ hg ci -m "copied binary"
395 $ hg ci -m "copied binary"
396
396
397 Note: "bin2_moved_again" is marked binary in phabricator, and both sides of it
397 Note: "bin2_moved_again" is marked binary in phabricator, and both sides of it
398 are viewable in their proper state. "bin2_copied" is not viewable, and not
398 are viewable in their proper state. "bin2_copied" is not viewable, and not
399 listed as binary in phabricator.
399 listed as binary in phabricator.
400
400
401 >>> open('bin2_copied', 'wb').write(b'\0move+mod') and None
401 >>> open('bin2_copied', 'wb').write(b'\0move+mod') and None
402 $ hg mv bin2_copied bin2_moved_again
402 $ hg mv bin2_copied bin2_moved_again
403 $ hg ci -m "move+mod copied binary"
403 $ hg ci -m "move+mod copied binary"
404
404
405 Note: "bin2_moved" and "bin2_moved_copy" are both marked binary, and both
405 Note: "bin2_moved" and "bin2_moved_copy" are both marked binary, and both
406 viewable on each side.
406 viewable on each side.
407
407
408 >>> open('bin2_moved', 'wb').write(b'\0precopy mod') and None
408 >>> open('bin2_moved', 'wb').write(b'\0precopy mod') and None
409 $ hg cp bin2_moved bin2_moved_copied
409 $ hg cp bin2_moved bin2_moved_copied
410 >>> open('bin2_moved', 'wb').write(b'\0copy src+mod') and None
410 >>> open('bin2_moved', 'wb').write(b'\0copy src+mod') and None
411 $ hg ci -m "copy+mod moved binary"
411 $ hg ci -m "copy+mod moved binary"
412
412
413 $ hg phabsend -r .~4:: --test-vcr "$VCR/phabsend-binary-renames.json"
413 $ hg phabsend -r .~4:: --test-vcr "$VCR/phabsend-binary-renames.json"
414 uploading bin2@f42f9195e00c
414 uploading bin2@f42f9195e00c
415 D8128 - created - f42f9195e00c: add another binary
415 D8128 - created - f42f9195e00c: add another binary
416 D8129 - created - 834ab31d80ae: moved binary
416 D8129 - created - 834ab31d80ae: moved binary
417 D8130 - created - 494b750e5194: copied binary
417 D8130 - created - 494b750e5194: copied binary
418 uploading bin2_moved_again@25f766b50cc2
418 uploading bin2_moved_again@25f766b50cc2
419 D8131 - created - 25f766b50cc2: move+mod copied binary
419 D8131 - created - 25f766b50cc2: move+mod copied binary
420 uploading bin2_moved_copied@1b87b363a5e4
420 uploading bin2_moved_copied@1b87b363a5e4
421 uploading bin2_moved@1b87b363a5e4
421 uploading bin2_moved@1b87b363a5e4
422 D8132 - created - 1b87b363a5e4: copy+mod moved binary
422 D8132 - created - 1b87b363a5e4: copy+mod moved binary
423 new commits: ['90437c20312a']
423 new commits: ['90437c20312a']
424 new commits: ['f391f4da4c61']
424 new commits: ['f391f4da4c61']
425 new commits: ['da86a9f3268c']
425 new commits: ['da86a9f3268c']
426 new commits: ['003ffc16ba66']
426 new commits: ['003ffc16ba66']
427 new commits: ['13bd750c36fa']
427 new commits: ['13bd750c36fa']
428 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/f42f9195e00c-e82a0769-phabsend.hg
428 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/f42f9195e00c-e82a0769-phabsend.hg
429
429
430 Phabreading a DREV with a local:commits time as a string:
430 Phabreading a DREV with a local:commits time as a string:
431 $ hg phabread --test-vcr "$VCR/phabread-str-time.json" D1285
431 $ hg phabread --test-vcr "$VCR/phabread-str-time.json" D1285
432 # HG changeset patch
432 # HG changeset patch
433 # User Pulkit Goyal <7895pulkit@gmail.com>
433 # User Pulkit Goyal <7895pulkit@gmail.com>
434 # Date 1509404054 -19800
434 # Date 1509404054 -19800
435 # Node ID 44fc1c1f1774a76423b9c732af6938435099bcc5
435 # Node ID 44fc1c1f1774a76423b9c732af6938435099bcc5
436 # Parent 8feef8ef8389a3b544e0a74624f1efc3a8d85d35
436 # Parent 8feef8ef8389a3b544e0a74624f1efc3a8d85d35
437 repoview: add a new attribute _visibilityexceptions and related API
437 repoview: add a new attribute _visibilityexceptions and related API
438
438
439 Currently we don't have a defined way in core to make some hidden revisions
439 Currently we don't have a defined way in core to make some hidden revisions
440 visible in filtered repo. Extensions to achieve the purpose of unhiding some
440 visible in filtered repo. Extensions to achieve the purpose of unhiding some
441 hidden commits, wrap repoview.pinnedrevs() function.
441 hidden commits, wrap repoview.pinnedrevs() function.
442
442
443 To make the above task simple and have well defined API, this patch adds a new
443 To make the above task simple and have well defined API, this patch adds a new
444 attribute '_visibilityexceptions' to repoview class which will contains
444 attribute '_visibilityexceptions' to repoview class which will contains
445 the hidden revs which should be exception.
445 the hidden revs which should be exception.
446 This will allow to set different exceptions for different repoview objects
446 This will allow to set different exceptions for different repoview objects
447 backed by the same unfiltered repo.
447 backed by the same unfiltered repo.
448
448
449 This patch also adds API to add revs to the attribute set and get them.
449 This patch also adds API to add revs to the attribute set and get them.
450
450
451 Thanks to Jun for suggesting the use of repoview class instead of localrepo.
451 Thanks to Jun for suggesting the use of repoview class instead of localrepo.
452
452
453 Differential Revision: https://phab.mercurial-scm.org/D1285
453 Differential Revision: https://phab.mercurial-scm.org/D1285
454 diff --git a/mercurial/repoview.py b/mercurial/repoview.py
454 diff --git a/mercurial/repoview.py b/mercurial/repoview.py
455 --- a/mercurial/repoview.py
455 --- a/mercurial/repoview.py
456 +++ b/mercurial/repoview.py
456 +++ b/mercurial/repoview.py
457 @@ * @@ (glob)
457 @@ * @@ (glob)
458 subclasses of `localrepo`. Eg: `bundlerepo` or `statichttprepo`.
458 subclasses of `localrepo`. Eg: `bundlerepo` or `statichttprepo`.
459 """
459 """
460
460
461 + # hidden revs which should be visible
461 + # hidden revs which should be visible
462 + _visibilityexceptions = set()
462 + _visibilityexceptions = set()
463 +
463 +
464 def __init__(self, repo, filtername):
464 def __init__(self, repo, filtername):
465 object.__setattr__(self, r'_unfilteredrepo', repo)
465 object.__setattr__(self, r'_unfilteredrepo', repo)
466 object.__setattr__(self, r'filtername', filtername)
466 object.__setattr__(self, r'filtername', filtername)
467 @@ -231,6 +234,14 @@
467 @@ -231,6 +234,14 @@
468 return self
468 return self
469 return self.unfiltered().filtered(name)
469 return self.unfiltered().filtered(name)
470
470
471 + def addvisibilityexceptions(self, revs):
471 + def addvisibilityexceptions(self, revs):
472 + """adds hidden revs which should be visible to set of exceptions"""
472 + """adds hidden revs which should be visible to set of exceptions"""
473 + self._visibilityexceptions.update(revs)
473 + self._visibilityexceptions.update(revs)
474 +
474 +
475 + def getvisibilityexceptions(self):
475 + def getvisibilityexceptions(self):
476 + """returns the set of hidden revs which should be visible"""
476 + """returns the set of hidden revs which should be visible"""
477 + return self._visibilityexceptions
477 + return self._visibilityexceptions
478 +
478 +
479 # everything access are forwarded to the proxied repo
479 # everything access are forwarded to the proxied repo
480 def __getattr__(self, attr):
480 def __getattr__(self, attr):
481 return getattr(self._unfilteredrepo, attr)
481 return getattr(self._unfilteredrepo, attr)
482 diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
482 diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
483 --- a/mercurial/localrepo.py
483 --- a/mercurial/localrepo.py
484 +++ b/mercurial/localrepo.py
484 +++ b/mercurial/localrepo.py
485 @@ -570,6 +570,14 @@
485 @@ -570,6 +570,14 @@
486 def close(self):
486 def close(self):
487 self._writecaches()
487 self._writecaches()
488
488
489 + def addvisibilityexceptions(self, exceptions):
489 + def addvisibilityexceptions(self, exceptions):
490 + # should be called on a filtered repository
490 + # should be called on a filtered repository
491 + pass
491 + pass
492 +
492 +
493 + def getvisibilityexceptions(self):
493 + def getvisibilityexceptions(self):
494 + # should be called on a filtered repository
494 + # should be called on a filtered repository
495 + return set()
495 + return set()
496 +
496 +
497 def _loadextensions(self):
497 def _loadextensions(self):
498 extensions.loadall(self.ui)
498 extensions.loadall(self.ui)
499
499
500
500
501 A bad .arcconfig doesn't error out
501 A bad .arcconfig doesn't error out
502 $ echo 'garbage' > .arcconfig
502 $ echo 'garbage' > .arcconfig
503 $ hg config phabricator --debug
503 $ hg config phabricator --debug
504 invalid JSON in $TESTTMP/repo/.arcconfig
504 invalid JSON in $TESTTMP/repo/.arcconfig
505 read config from: */.hgrc (glob)
505 read config from: */.hgrc (glob)
506 */.hgrc:*: phabricator.debug=True (glob)
506 */.hgrc:*: phabricator.debug=True (glob)
507 $TESTTMP/repo/.hg/hgrc:*: phabricator.url=https://phab.mercurial-scm.org/ (glob)
507 $TESTTMP/repo/.hg/hgrc:*: phabricator.url=https://phab.mercurial-scm.org/ (glob)
508 $TESTTMP/repo/.hg/hgrc:*: phabricator.callsign=HG (glob)
508 $TESTTMP/repo/.hg/hgrc:*: phabricator.callsign=HG (glob)
509
509
510 The .arcconfig content overrides global config
510 The .arcconfig content overrides global config
511 $ cat >> $HGRCPATH << EOF
511 $ cat >> $HGRCPATH << EOF
512 > [phabricator]
512 > [phabricator]
513 > url = global
513 > url = global
514 > callsign = global
514 > callsign = global
515 > EOF
515 > EOF
516 $ cp $TESTDIR/../.arcconfig .
516 $ cp $TESTDIR/../.arcconfig .
517 $ mv .hg/hgrc .hg/hgrc.bak
517 $ mv .hg/hgrc .hg/hgrc.bak
518 $ hg config phabricator --debug
518 $ hg config phabricator --debug
519 read config from: */.hgrc (glob)
519 read config from: */.hgrc (glob)
520 */.hgrc:*: phabricator.debug=True (glob)
520 */.hgrc:*: phabricator.debug=True (glob)
521 $TESTTMP/repo/.arcconfig: phabricator.callsign=HG
521 $TESTTMP/repo/.arcconfig: phabricator.callsign=HG
522 $TESTTMP/repo/.arcconfig: phabricator.url=https://phab.mercurial-scm.org/
522 $TESTTMP/repo/.arcconfig: phabricator.url=https://phab.mercurial-scm.org/
523
523
524 But it doesn't override local config
524 But it doesn't override local config
525 $ cat >> .hg/hgrc << EOF
525 $ cat >> .hg/hgrc << EOF
526 > [phabricator]
526 > [phabricator]
527 > url = local
527 > url = local
528 > callsign = local
528 > callsign = local
529 > EOF
529 > EOF
530 $ hg config phabricator --debug
530 $ hg config phabricator --debug
531 read config from: */.hgrc (glob)
531 read config from: */.hgrc (glob)
532 */.hgrc:*: phabricator.debug=True (glob)
532 */.hgrc:*: phabricator.debug=True (glob)
533 $TESTTMP/repo/.hg/hgrc:*: phabricator.url=local (glob)
533 $TESTTMP/repo/.hg/hgrc:*: phabricator.url=local (glob)
534 $TESTTMP/repo/.hg/hgrc:*: phabricator.callsign=local (glob)
534 $TESTTMP/repo/.hg/hgrc:*: phabricator.callsign=local (glob)
535 $ mv .hg/hgrc.bak .hg/hgrc
535 $ mv .hg/hgrc.bak .hg/hgrc
536
536
537 Phabimport works with a stack
537 Phabimport works with a stack
538
538
539 $ cd ..
539 $ cd ..
540 $ hg clone repo repo2 -qr 1
540 $ hg clone repo repo2 -qr 1
541 $ cp repo/.hg/hgrc repo2/.hg/
541 $ cp repo/.hg/hgrc repo2/.hg/
542 $ cd repo2
542 $ cd repo2
543 $ hg phabimport --stack 'D7918' --test-vcr "$VCR/phabimport-stack.json"
543 $ hg phabimport --stack 'D7918' --test-vcr "$VCR/phabimport-stack.json"
544 applying patch from D7917
544 applying patch from D7917
545 applying patch from D7918
545 applying patch from D7918
546 $ hg log -r .: -G -Tcompact
546 $ hg log -r .: -G -Tcompact
547 o 3[tip] aaef04066140 1970-01-01 00:00 +0000 test
547 o 3[tip] aaef04066140 1970-01-01 00:00 +0000 test
548 | create draft change for phabricator testing
548 | create draft change for phabricator testing
549 |
549 |
550 o 2 8de3712202d1 1970-01-01 00:00 +0000 test
550 o 2 8de3712202d1 1970-01-01 00:00 +0000 test
551 | create public change for phabricator testing
551 | create public change for phabricator testing
552 |
552 |
553 @ 1 a692622e6937 1970-01-01 00:00 +0000 test
553 @ 1 a692622e6937 1970-01-01 00:00 +0000 test
554 | create beta for phabricator test
554 | create beta for phabricator test
555 ~
555 ~
556 Phabimport can create secret commits
556 Phabimport can create secret commits
557
557
558 $ hg rollback --config ui.rollback=True
558 $ hg rollback --config ui.rollback=True
559 repository tip rolled back to revision 1 (undo phabimport)
559 repository tip rolled back to revision 1 (undo phabimport)
560 $ hg phabimport --stack 'D7918' --test-vcr "$VCR/phabimport-stack.json" \
560 $ hg phabimport --stack 'D7918' --test-vcr "$VCR/phabimport-stack.json" \
561 > --config phabimport.secret=True
561 > --config phabimport.secret=True
562 applying patch from D7917
562 applying patch from D7917
563 applying patch from D7918
563 applying patch from D7918
564 $ hg log -r 'reverse(.:)' -T phases
564 $ hg log -r 'reverse(.:)' -T phases
565 changeset: 3:aaef04066140
565 changeset: 3:aaef04066140
566 tag: tip
566 tag: tip
567 phase: secret
567 phase: secret
568 user: test
568 user: test
569 date: Thu Jan 01 00:00:00 1970 +0000
569 date: Thu Jan 01 00:00:00 1970 +0000
570 summary: create draft change for phabricator testing
570 summary: create draft change for phabricator testing
571
571
572 changeset: 2:8de3712202d1
572 changeset: 2:8de3712202d1
573 phase: secret
573 phase: secret
574 user: test
574 user: test
575 date: Thu Jan 01 00:00:00 1970 +0000
575 date: Thu Jan 01 00:00:00 1970 +0000
576 summary: create public change for phabricator testing
576 summary: create public change for phabricator testing
577
577
578 changeset: 1:a692622e6937
578 changeset: 1:a692622e6937
579 phase: public
579 phase: public
580 user: test
580 user: test
581 date: Thu Jan 01 00:00:00 1970 +0000
581 date: Thu Jan 01 00:00:00 1970 +0000
582 summary: create beta for phabricator test
582 summary: create beta for phabricator test
583
583
584 Phabimport accepts multiple DREVSPECs
584 Phabimport accepts multiple DREVSPECs
585
585
586 $ hg rollback --config ui.rollback=True
586 $ hg rollback --config ui.rollback=True
587 repository tip rolled back to revision 1 (undo phabimport)
587 repository tip rolled back to revision 1 (undo phabimport)
588 $ hg phabimport --no-stack D7917 D7918 --test-vcr "$VCR/phabimport-multi-drev.json"
588 $ hg phabimport --no-stack D7917 D7918 --test-vcr "$VCR/phabimport-multi-drev.json"
589 applying patch from D7917
589 applying patch from D7917
590 applying patch from D7918
590 applying patch from D7918
591
591
592 Phabsend requires a linear range of commits
592 Phabsend requires a linear range of commits
593
593
594 $ hg phabsend -r 0+2+3
594 $ hg phabsend -r 0+2+3
595 abort: cannot phabsend multiple head revisions: c44b38f24a45
595 abort: cannot phabsend multiple head revisions: c44b38f24a45
596 (the revisions must form a linear chain)
596 (the revisions must form a linear chain)
597 [255]
597 [255]
598
598
599 Validate arguments with --fold
599 Validate arguments with --fold
600
600
601 $ hg phabsend --fold -r 1
601 $ hg phabsend --fold -r 1
602 abort: cannot fold a single revision
602 abort: cannot fold a single revision
603 [255]
603 [255]
604 $ hg phabsend --fold --no-amend -r 1::
604 $ hg phabsend --fold --no-amend -r 1::
605 abort: cannot fold with --no-amend
605 abort: cannot fold with --no-amend
606 [255]
606 [255]
607 $ hg phabsend --fold -r 1::
607 $ hg phabsend --fold -r 1::
608 abort: cannot fold revisions with different DREV values
608 abort: cannot fold revisions with different DREV values
609 [255]
609 [255]
610
610
611 Setup a series of commits to be folded, and include the Test Plan field multiple
611 Setup a series of commits to be folded, and include the Test Plan field multiple
612 times to test the concatenation logic. No Test Plan field in the last one to
612 times to test the concatenation logic. No Test Plan field in the last one to
613 ensure missing fields are skipped.
613 ensure missing fields are skipped.
614
614
615 $ hg init ../folded
615 $ hg init ../folded
616 $ cd ../folded
616 $ cd ../folded
617 $ cat >> .hg/hgrc <<EOF
617 $ cat >> .hg/hgrc <<EOF
618 > [phabricator]
618 > [phabricator]
619 > url = https://phab.mercurial-scm.org/
619 > url = https://phab.mercurial-scm.org/
620 > callsign = HG
620 > callsign = HG
621 > EOF
621 > EOF
622
622
623 $ echo 'added' > file.txt
623 $ echo 'added' > file.txt
624 $ hg ci -Aqm 'added file'
624 $ hg ci -Aqm 'added file'
625
625
626 $ cat > log.txt <<EOF
626 $ cat > log.txt <<EOF
627 > one: first commit to review
627 > one: first commit to review
628 >
628 >
629 > This file was modified with 'mod1' as its contents.
629 > This file was modified with 'mod1' as its contents.
630 >
630 >
631 > Test Plan:
631 > Test Plan:
632 > LOL! What testing?!
632 > LOL! What testing?!
633 > EOF
633 > EOF
634 $ echo mod1 > file.txt
634 $ echo mod1 > file.txt
635 $ hg ci -l log.txt
635 $ hg ci -l log.txt
636
636
637 $ cat > log.txt <<EOF
637 $ cat > log.txt <<EOF
638 > two: second commit to review
638 > two: second commit to review
639 >
639 >
640 > This file was modified with 'mod2' as its contents.
640 > This file was modified with 'mod2' as its contents.
641 >
641 >
642 > Test Plan:
642 > Test Plan:
643 > Haha! yeah, right.
643 > Haha! yeah, right.
644 >
644 >
645 > EOF
645 > EOF
646 $ echo mod2 > file.txt
646 $ echo mod2 > file.txt
647 $ hg ci -l log.txt
647 $ hg ci -l log.txt
648
648
649 $ echo mod3 > file.txt
649 $ echo mod3 > file.txt
650 $ hg ci -m '3: a commit with no detailed message'
650 $ hg ci -m '3: a commit with no detailed message'
651
651
652 The folding of immutable commits works...
652 The folding of immutable commits works...
653
653
654 $ hg phase -r tip --public
654 $ hg phase -r tip --public
655 $ hg phabsend --fold -r 1:: --test-vcr "$VCR/phabsend-fold-immutable.json"
655 $ hg phabsend --fold -r 1:: --test-vcr "$VCR/phabsend-fold-immutable.json"
656 D8386 - created - a959a3f69d8d: one: first commit to review
656 D8386 - created - a959a3f69d8d: one: first commit to review
657 D8386 - created - 24a4438154ba: two: second commit to review
657 D8386 - created - 24a4438154ba: two: second commit to review
658 D8386 - created - d235829e802c: 3: a commit with no detailed message
658 D8386 - created - d235829e802c: 3: a commit with no detailed message
659 warning: not updating public commit 1:a959a3f69d8d
659 warning: not updating public commit 1:a959a3f69d8d
660 warning: not updating public commit 2:24a4438154ba
660 warning: not updating public commit 2:24a4438154ba
661 warning: not updating public commit 3:d235829e802c
661 warning: not updating public commit 3:d235829e802c
662 no newnodes to update
662 no newnodes to update
663
663
664 $ hg phase -r 0 --draft --force
664 $ hg phase -r 0 --draft --force
665
665
666 ... as does the initial mutable fold...
666 ... as does the initial mutable fold...
667
667
668 $ echo y | hg phabsend --fold --confirm -r 1:: \
668 $ echo y | hg phabsend --fold --confirm -r 1:: \
669 > --test-vcr "$VCR/phabsend-fold-initial.json"
669 > --test-vcr "$VCR/phabsend-fold-initial.json"
670 NEW - a959a3f69d8d: one: first commit to review
670 NEW - a959a3f69d8d: one: first commit to review
671 NEW - 24a4438154ba: two: second commit to review
671 NEW - 24a4438154ba: two: second commit to review
672 NEW - d235829e802c: 3: a commit with no detailed message
672 NEW - d235829e802c: 3: a commit with no detailed message
673 Send the above changes to https://phab.mercurial-scm.org/ (yn)? y
673 Send the above changes to https://phab.mercurial-scm.org/ (yn)? y
674 D8387 - created - a959a3f69d8d: one: first commit to review
674 D8387 - created - a959a3f69d8d: one: first commit to review
675 D8387 - created - 24a4438154ba: two: second commit to review
675 D8387 - created - 24a4438154ba: two: second commit to review
676 D8387 - created - d235829e802c: 3: a commit with no detailed message
676 D8387 - created - d235829e802c: 3: a commit with no detailed message
677 updating local commit list for D8387
677 updating local commit list for D8387
678 new commits: ['602c4e738243', '832553266fe8', '921f8265efbd']
678 new commits: ['602c4e738243', '832553266fe8', '921f8265efbd']
679 saved backup bundle to $TESTTMP/folded/.hg/strip-backup/a959a3f69d8d-a4a24136-phabsend.hg
679 saved backup bundle to $TESTTMP/folded/.hg/strip-backup/a959a3f69d8d-a4a24136-phabsend.hg
680
680
681 ... and doesn't mangle the local commits.
681 ... and doesn't mangle the local commits.
682
682
683 $ hg log -T '{rev}:{node|short}\n{indent(desc, " ")}\n'
683 $ hg log -T '{rev}:{node|short}\n{indent(desc, " ")}\n'
684 3:921f8265efbd
684 3:921f8265efbd
685 3: a commit with no detailed message
685 3: a commit with no detailed message
686
686
687 Differential Revision: https://phab.mercurial-scm.org/D8387
687 Differential Revision: https://phab.mercurial-scm.org/D8387
688 2:832553266fe8
688 2:832553266fe8
689 two: second commit to review
689 two: second commit to review
690
690
691 This file was modified with 'mod2' as its contents.
691 This file was modified with 'mod2' as its contents.
692
692
693 Test Plan:
693 Test Plan:
694 Haha! yeah, right.
694 Haha! yeah, right.
695
695
696 Differential Revision: https://phab.mercurial-scm.org/D8387
696 Differential Revision: https://phab.mercurial-scm.org/D8387
697 1:602c4e738243
697 1:602c4e738243
698 one: first commit to review
698 one: first commit to review
699
699
700 This file was modified with 'mod1' as its contents.
700 This file was modified with 'mod1' as its contents.
701
701
702 Test Plan:
702 Test Plan:
703 LOL! What testing?!
703 LOL! What testing?!
704
704
705 Differential Revision: https://phab.mercurial-scm.org/D8387
705 Differential Revision: https://phab.mercurial-scm.org/D8387
706 0:98d480e0d494
706 0:98d480e0d494
707 added file
707 added file
708
708
709 Setup some obsmarkers by adding a file to the middle commit. This stress tests
709 Setup some obsmarkers by adding a file to the middle commit. This stress tests
710 getoldnodedrevmap() in later phabsends.
710 getoldnodedrevmap() in later phabsends.
711
711
712 $ hg up '.^'
712 $ hg up '.^'
713 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
713 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
714 $ echo 'modified' > file2.txt
714 $ echo 'modified' > file2.txt
715 $ hg add file2.txt
715 $ hg add file2.txt
716 $ hg amend --config experimental.evolution=all --config extensions.amend=
716 $ hg amend --config experimental.evolution=all --config extensions.amend=
717 1 new orphan changesets
717 1 new orphan changesets
718 $ hg up 3
718 $ hg up 3
719 obsolete feature not enabled but 1 markers found!
719 obsolete feature not enabled but 1 markers found!
720 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
720 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
721 $ hg rebase --config experimental.evolution=all --config extensions.rebase=
721 $ hg rebase --config experimental.evolution=all --config extensions.rebase=
722 note: not rebasing 2:832553266fe8 "two: second commit to review", already in destination as 4:0124e5474c88 "two: second commit to review" (tip)
722 note: not rebasing 2:832553266fe8 "two: second commit to review", already in destination as 4:0124e5474c88 "two: second commit to review" (tip)
723 rebasing 3:921f8265efbd "3: a commit with no detailed message"
723 rebasing 3:921f8265efbd "3: a commit with no detailed message"
724
724
725 When commits have changed locally, the local commit list on Phabricator is
725 When commits have changed locally, the local commit list on Phabricator is
726 updated.
726 updated.
727
727
728 $ echo y | hg phabsend --fold --confirm -r 1:: \
728 $ echo y | hg phabsend --fold --confirm -r 1:: \
729 > --test-vcr "$VCR/phabsend-fold-updated.json"
729 > --test-vcr "$VCR/phabsend-fold-updated.json"
730 obsolete feature not enabled but 2 markers found!
730 obsolete feature not enabled but 2 markers found!
731 602c4e738243 mapped to old nodes ['602c4e738243']
731 602c4e738243 mapped to old nodes ['602c4e738243']
732 0124e5474c88 mapped to old nodes ['832553266fe8']
732 0124e5474c88 mapped to old nodes ['832553266fe8']
733 e4edb1fe3565 mapped to old nodes ['921f8265efbd']
733 e4edb1fe3565 mapped to old nodes ['921f8265efbd']
734 D8387 - 602c4e738243: one: first commit to review
734 D8387 - 602c4e738243: one: first commit to review
735 D8387 - 0124e5474c88: two: second commit to review
735 D8387 - 0124e5474c88: two: second commit to review
736 D8387 - e4edb1fe3565: 3: a commit with no detailed message
736 D8387 - e4edb1fe3565: 3: a commit with no detailed message
737 Send the above changes to https://phab.mercurial-scm.org/ (yn)? y
737 Send the above changes to https://phab.mercurial-scm.org/ (yn)? y
738 D8387 - updated - 602c4e738243: one: first commit to review
738 D8387 - updated - 602c4e738243: one: first commit to review
739 D8387 - updated - 0124e5474c88: two: second commit to review
739 D8387 - updated - 0124e5474c88: two: second commit to review
740 D8387 - updated - e4edb1fe3565: 3: a commit with no detailed message
740 D8387 - updated - e4edb1fe3565: 3: a commit with no detailed message
741 obsolete feature not enabled but 2 markers found! (?)
741 obsolete feature not enabled but 2 markers found! (?)
742 updating local commit list for D8387
742 updating local commit list for D8387
743 new commits: ['602c4e738243', '0124e5474c88', 'e4edb1fe3565']
743 new commits: ['602c4e738243', '0124e5474c88', 'e4edb1fe3565']
744 $ hg log -Tcompact
744 $ hg log -Tcompact
745 obsolete feature not enabled but 2 markers found!
745 obsolete feature not enabled but 2 markers found!
746 5[tip] e4edb1fe3565 1970-01-01 00:00 +0000 test
746 5[tip] e4edb1fe3565 1970-01-01 00:00 +0000 test
747 3: a commit with no detailed message
747 3: a commit with no detailed message
748
748
749 4:1 0124e5474c88 1970-01-01 00:00 +0000 test
749 4:1 0124e5474c88 1970-01-01 00:00 +0000 test
750 two: second commit to review
750 two: second commit to review
751
751
752 1 602c4e738243 1970-01-01 00:00 +0000 test
752 1 602c4e738243 1970-01-01 00:00 +0000 test
753 one: first commit to review
753 one: first commit to review
754
754
755 0 98d480e0d494 1970-01-01 00:00 +0000 test
755 0 98d480e0d494 1970-01-01 00:00 +0000 test
756 added file
756 added file
757
757
758 When nothing has changed locally since the last phabsend, the commit list isn't
758 When nothing has changed locally since the last phabsend, the commit list isn't
759 updated, and nothing is changed locally afterward.
759 updated, and nothing is changed locally afterward.
760
760
761 $ hg phabsend --fold -r 1:: --test-vcr "$VCR/phabsend-fold-no-changes.json"
761 $ hg phabsend --fold -r 1:: --test-vcr "$VCR/phabsend-fold-no-changes.json"
762 obsolete feature not enabled but 2 markers found!
762 obsolete feature not enabled but 2 markers found!
763 602c4e738243 mapped to old nodes ['602c4e738243']
763 602c4e738243 mapped to old nodes ['602c4e738243']
764 0124e5474c88 mapped to old nodes ['0124e5474c88']
764 0124e5474c88 mapped to old nodes ['0124e5474c88']
765 e4edb1fe3565 mapped to old nodes ['e4edb1fe3565']
765 e4edb1fe3565 mapped to old nodes ['e4edb1fe3565']
766 D8387 - updated - 602c4e738243: one: first commit to review
766 D8387 - updated - 602c4e738243: one: first commit to review
767 D8387 - updated - 0124e5474c88: two: second commit to review
767 D8387 - updated - 0124e5474c88: two: second commit to review
768 D8387 - updated - e4edb1fe3565: 3: a commit with no detailed message
768 D8387 - updated - e4edb1fe3565: 3: a commit with no detailed message
769 obsolete feature not enabled but 2 markers found! (?)
769 obsolete feature not enabled but 2 markers found! (?)
770 local commit list for D8387 is already up-to-date
770 local commit list for D8387 is already up-to-date
771 $ hg log -Tcompact
771 $ hg log -Tcompact
772 obsolete feature not enabled but 2 markers found!
772 obsolete feature not enabled but 2 markers found!
773 5[tip] e4edb1fe3565 1970-01-01 00:00 +0000 test
773 5[tip] e4edb1fe3565 1970-01-01 00:00 +0000 test
774 3: a commit with no detailed message
774 3: a commit with no detailed message
775
775
776 4:1 0124e5474c88 1970-01-01 00:00 +0000 test
776 4:1 0124e5474c88 1970-01-01 00:00 +0000 test
777 two: second commit to review
777 two: second commit to review
778
778
779 1 602c4e738243 1970-01-01 00:00 +0000 test
779 1 602c4e738243 1970-01-01 00:00 +0000 test
780 one: first commit to review
780 one: first commit to review
781
781
782 0 98d480e0d494 1970-01-01 00:00 +0000 test
782 0 98d480e0d494 1970-01-01 00:00 +0000 test
783 added file
783 added file
784
784
785 Fold will accept new revisions at the end...
785 Fold will accept new revisions at the end...
786
786
787 $ echo 'another mod' > file2.txt
787 $ echo 'another mod' > file2.txt
788 $ hg ci -m 'four: extend the fold range'
788 $ hg ci -m 'four: extend the fold range'
789 obsolete feature not enabled but 2 markers found!
789 obsolete feature not enabled but 2 markers found!
790 $ hg phabsend --fold -r 1:: --test-vcr "$VCR/phabsend-fold-extend-end.json" \
790 $ hg phabsend --fold -r 1:: --test-vcr "$VCR/phabsend-fold-extend-end.json" \
791 > --config experimental.evolution=all
791 > --config experimental.evolution=all
792 602c4e738243 mapped to old nodes ['602c4e738243']
792 602c4e738243 mapped to old nodes ['602c4e738243']
793 0124e5474c88 mapped to old nodes ['0124e5474c88']
793 0124e5474c88 mapped to old nodes ['0124e5474c88']
794 e4edb1fe3565 mapped to old nodes ['e4edb1fe3565']
794 e4edb1fe3565 mapped to old nodes ['e4edb1fe3565']
795 D8387 - updated - 602c4e738243: one: first commit to review
795 D8387 - updated - 602c4e738243: one: first commit to review
796 D8387 - updated - 0124e5474c88: two: second commit to review
796 D8387 - updated - 0124e5474c88: two: second commit to review
797 D8387 - updated - e4edb1fe3565: 3: a commit with no detailed message
797 D8387 - updated - e4edb1fe3565: 3: a commit with no detailed message
798 D8387 - created - 94aaae213b23: four: extend the fold range
798 D8387 - created - 94aaae213b23: four: extend the fold range
799 updating local commit list for D8387
799 updating local commit list for D8387
800 new commits: ['602c4e738243', '0124e5474c88', 'e4edb1fe3565', '51a04fea8707']
800 new commits: ['602c4e738243', '0124e5474c88', 'e4edb1fe3565', '51a04fea8707']
801 $ hg log -r . -T '{desc}\n'
801 $ hg log -r . -T '{desc}\n'
802 four: extend the fold range
802 four: extend the fold range
803
803
804 Differential Revision: https://phab.mercurial-scm.org/D8387
804 Differential Revision: https://phab.mercurial-scm.org/D8387
805 $ hg log -T'{rev} {if(phabreview, "{phabreview.url} {phabreview.id}")}\n' -r 1::
805 $ hg log -T'{rev} {if(phabreview, "{phabreview.url} {phabreview.id}")}\n' -r 1::
806 obsolete feature not enabled but 3 markers found!
806 obsolete feature not enabled but 3 markers found!
807 1 https://phab.mercurial-scm.org/D8387 D8387
807 1 https://phab.mercurial-scm.org/D8387 D8387
808 4 https://phab.mercurial-scm.org/D8387 D8387
808 4 https://phab.mercurial-scm.org/D8387 D8387
809 5 https://phab.mercurial-scm.org/D8387 D8387
809 5 https://phab.mercurial-scm.org/D8387 D8387
810 7 https://phab.mercurial-scm.org/D8387 D8387
810 7 https://phab.mercurial-scm.org/D8387 D8387
811
811
812 ... and also accepts new revisions at the beginning of the range
812 ... and also accepts new revisions at the beginning of the range
813
813
814 It's a bit unfortunate that not having a Differential URL on the first commit
814 It's a bit unfortunate that not having a Differential URL on the first commit
815 causes a new Differential Revision to be created, though it isn't *entirely*
815 causes a new Differential Revision to be created, though it isn't *entirely*
816 unreasonable. At least this updates the subsequent commits.
816 unreasonable. At least this updates the subsequent commits.
817
817
818 TODO: See if it can reuse the existing Differential.
818 TODO: See if it can reuse the existing Differential.
819
819
820 $ hg phabsend --fold -r 0:: --test-vcr "$VCR/phabsend-fold-extend-front.json" \
820 $ hg phabsend --fold -r 0:: --test-vcr "$VCR/phabsend-fold-extend-front.json" \
821 > --config experimental.evolution=all
821 > --config experimental.evolution=all
822 602c4e738243 mapped to old nodes ['602c4e738243']
822 602c4e738243 mapped to old nodes ['602c4e738243']
823 0124e5474c88 mapped to old nodes ['0124e5474c88']
823 0124e5474c88 mapped to old nodes ['0124e5474c88']
824 e4edb1fe3565 mapped to old nodes ['e4edb1fe3565']
824 e4edb1fe3565 mapped to old nodes ['e4edb1fe3565']
825 51a04fea8707 mapped to old nodes ['51a04fea8707']
825 51a04fea8707 mapped to old nodes ['51a04fea8707']
826 D8388 - created - 98d480e0d494: added file
826 D8388 - created - 98d480e0d494: added file
827 D8388 - updated - 602c4e738243: one: first commit to review
827 D8388 - updated - 602c4e738243: one: first commit to review
828 D8388 - updated - 0124e5474c88: two: second commit to review
828 D8388 - updated - 0124e5474c88: two: second commit to review
829 D8388 - updated - e4edb1fe3565: 3: a commit with no detailed message
829 D8388 - updated - e4edb1fe3565: 3: a commit with no detailed message
830 D8388 - updated - 51a04fea8707: four: extend the fold range
830 D8388 - updated - 51a04fea8707: four: extend the fold range
831 updating local commit list for D8388
831 updating local commit list for D8388
832 new commits: ['15e9b14b4b4c', '6320b7d714cf', '3ee132d41dbc', '30682b960804', 'ac7db67f0991']
832 new commits: ['15e9b14b4b4c', '6320b7d714cf', '3ee132d41dbc', '30682b960804', 'ac7db67f0991']
833
833
834 $ hg log -T '{rev}:{node|short}\n{indent(desc, " ")}\n'
834 $ hg log -T '{rev}:{node|short}\n{indent(desc, " ")}\n'
835 obsolete feature not enabled but 8 markers found!
835 obsolete feature not enabled but 8 markers found!
836 12:ac7db67f0991
836 12:ac7db67f0991
837 four: extend the fold range
837 four: extend the fold range
838
838
839 Differential Revision: https://phab.mercurial-scm.org/D8388
839 Differential Revision: https://phab.mercurial-scm.org/D8388
840 11:30682b960804
840 11:30682b960804
841 3: a commit with no detailed message
841 3: a commit with no detailed message
842
842
843 Differential Revision: https://phab.mercurial-scm.org/D8388
843 Differential Revision: https://phab.mercurial-scm.org/D8388
844 10:3ee132d41dbc
844 10:3ee132d41dbc
845 two: second commit to review
845 two: second commit to review
846
846
847 This file was modified with 'mod2' as its contents.
847 This file was modified with 'mod2' as its contents.
848
848
849 Test Plan:
849 Test Plan:
850 Haha! yeah, right.
850 Haha! yeah, right.
851
851
852 Differential Revision: https://phab.mercurial-scm.org/D8388
852 Differential Revision: https://phab.mercurial-scm.org/D8388
853 9:6320b7d714cf
853 9:6320b7d714cf
854 one: first commit to review
854 one: first commit to review
855
855
856 This file was modified with 'mod1' as its contents.
856 This file was modified with 'mod1' as its contents.
857
857
858 Test Plan:
858 Test Plan:
859 LOL! What testing?!
859 LOL! What testing?!
860
860
861 Differential Revision: https://phab.mercurial-scm.org/D8388
861 Differential Revision: https://phab.mercurial-scm.org/D8388
862 8:15e9b14b4b4c
862 8:15e9b14b4b4c
863 added file
863 added file
864
864
865 Differential Revision: https://phab.mercurial-scm.org/D8388
865 Differential Revision: https://phab.mercurial-scm.org/D8388
866
866
867 Test phabsend --fold with an `hg split` at the end of the range
867 Test phabsend --fold with an `hg split` at the end of the range
868
868
869 $ echo foo > file3.txt
869 $ echo foo > file3.txt
870 $ hg add file3.txt
870 $ hg add file3.txt
871
871
872 $ hg log -r . -T '{desc}' > log.txt
872 $ hg log -r . -T '{desc}' > log.txt
873 $ echo 'amended mod' > file2.txt
873 $ echo 'amended mod' > file2.txt
874 $ hg ci --amend -l log.txt --config experimental.evolution=all
874 $ hg ci --amend -l log.txt --config experimental.evolution=all
875
875
876 $ cat <<EOF | hg --config extensions.split= --config ui.interactive=True \
876 $ cat <<EOF | hg --config extensions.split= --config ui.interactive=True \
877 > --config experimental.evolution=all split -r .
877 > --config experimental.evolution=all split -r .
878 > n
878 > n
879 > y
879 > y
880 > y
880 > y
881 > y
881 > y
882 > y
882 > y
883 > EOF
883 > EOF
884 diff --git a/file2.txt b/file2.txt
884 diff --git a/file2.txt b/file2.txt
885 1 hunks, 1 lines changed
885 1 hunks, 1 lines changed
886 examine changes to 'file2.txt'?
886 examine changes to 'file2.txt'?
887 (enter ? for help) [Ynesfdaq?] n
887 (enter ? for help) [Ynesfdaq?] n
888
888
889 diff --git a/file3.txt b/file3.txt
889 diff --git a/file3.txt b/file3.txt
890 new file mode 100644
890 new file mode 100644
891 examine changes to 'file3.txt'?
891 examine changes to 'file3.txt'?
892 (enter ? for help) [Ynesfdaq?] y
892 (enter ? for help) [Ynesfdaq?] y
893
893
894 @@ -0,0 +1,1 @@
894 @@ -0,0 +1,1 @@
895 +foo
895 +foo
896 record change 2/2 to 'file3.txt'?
896 record change 2/2 to 'file3.txt'?
897 (enter ? for help) [Ynesfdaq?] y
897 (enter ? for help) [Ynesfdaq?] y
898
898
899 created new head
899 created new head
900 diff --git a/file2.txt b/file2.txt
900 diff --git a/file2.txt b/file2.txt
901 1 hunks, 1 lines changed
901 1 hunks, 1 lines changed
902 examine changes to 'file2.txt'?
902 examine changes to 'file2.txt'?
903 (enter ? for help) [Ynesfdaq?] y
903 (enter ? for help) [Ynesfdaq?] y
904
904
905 @@ -1,1 +1,1 @@
905 @@ -1,1 +1,1 @@
906 -modified
906 -modified
907 +amended mod
907 +amended mod
908 record this change to 'file2.txt'?
908 record this change to 'file2.txt'?
909 (enter ? for help) [Ynesfdaq?] y
909 (enter ? for help) [Ynesfdaq?] y
910
910
911 $ hg phabsend --fold -r 8:: --test-vcr "$VCR/phabsend-fold-split-end.json" \
911 $ hg phabsend --fold -r 8:: --test-vcr "$VCR/phabsend-fold-split-end.json" \
912 > --config experimental.evolution=all
912 > --config experimental.evolution=all
913 15e9b14b4b4c mapped to old nodes ['15e9b14b4b4c']
913 15e9b14b4b4c mapped to old nodes ['15e9b14b4b4c']
914 6320b7d714cf mapped to old nodes ['6320b7d714cf']
914 6320b7d714cf mapped to old nodes ['6320b7d714cf']
915 3ee132d41dbc mapped to old nodes ['3ee132d41dbc']
915 3ee132d41dbc mapped to old nodes ['3ee132d41dbc']
916 30682b960804 mapped to old nodes ['30682b960804']
916 30682b960804 mapped to old nodes ['30682b960804']
917 6bc15dc99efd mapped to old nodes ['ac7db67f0991']
917 6bc15dc99efd mapped to old nodes ['ac7db67f0991']
918 b50946d5e490 mapped to old nodes ['ac7db67f0991']
918 b50946d5e490 mapped to old nodes ['ac7db67f0991']
919 D8388 - updated - 15e9b14b4b4c: added file
919 D8388 - updated - 15e9b14b4b4c: added file
920 D8388 - updated - 6320b7d714cf: one: first commit to review
920 D8388 - updated - 6320b7d714cf: one: first commit to review
921 D8388 - updated - 3ee132d41dbc: two: second commit to review
921 D8388 - updated - 3ee132d41dbc: two: second commit to review
922 D8388 - updated - 30682b960804: 3: a commit with no detailed message
922 D8388 - updated - 30682b960804: 3: a commit with no detailed message
923 D8388 - updated - 6bc15dc99efd: four: extend the fold range
923 D8388 - updated - 6bc15dc99efd: four: extend the fold range
924 D8388 - updated - b50946d5e490: four: extend the fold range
924 D8388 - updated - b50946d5e490: four: extend the fold range
925 updating local commit list for D8388
925 updating local commit list for D8388
926 new commits: ['15e9b14b4b4c', '6320b7d714cf', '3ee132d41dbc', '30682b960804', '6bc15dc99efd', 'b50946d5e490']
926 new commits: ['15e9b14b4b4c', '6320b7d714cf', '3ee132d41dbc', '30682b960804', '6bc15dc99efd', 'b50946d5e490']
927
927
928 Test phabsend --fold with an `hg fold` at the end of the range
928 Test phabsend --fold with an `hg fold` at the end of the range
929
929
930 $ hg --config experimental.evolution=all --config extensions.rebase= \
930 $ hg --config experimental.evolution=all --config extensions.rebase= \
931 > rebase -r '.^' -r . -d '.^^' --collapse -l log.txt
931 > rebase -r '.^' -r . -d '.^^' --collapse -l log.txt
932 rebasing 14:6bc15dc99efd "four: extend the fold range"
932 rebasing 14:6bc15dc99efd "four: extend the fold range"
933 rebasing 15:b50946d5e490 "four: extend the fold range" (tip)
933 rebasing 15:b50946d5e490 "four: extend the fold range" (tip)
934
934
935 $ hg phabsend --fold -r 8:: --test-vcr "$VCR/phabsend-fold-fold-end.json" \
935 $ hg phabsend --fold -r 8:: --test-vcr "$VCR/phabsend-fold-fold-end.json" \
936 > --config experimental.evolution=all
936 > --config experimental.evolution=all
937 15e9b14b4b4c mapped to old nodes ['15e9b14b4b4c']
937 15e9b14b4b4c mapped to old nodes ['15e9b14b4b4c']
938 6320b7d714cf mapped to old nodes ['6320b7d714cf']
938 6320b7d714cf mapped to old nodes ['6320b7d714cf']
939 3ee132d41dbc mapped to old nodes ['3ee132d41dbc']
939 3ee132d41dbc mapped to old nodes ['3ee132d41dbc']
940 30682b960804 mapped to old nodes ['30682b960804']
940 30682b960804 mapped to old nodes ['30682b960804']
941 e919cdf3d4fe mapped to old nodes ['6bc15dc99efd', 'b50946d5e490']
941 e919cdf3d4fe mapped to old nodes ['6bc15dc99efd', 'b50946d5e490']
942 D8388 - updated - 15e9b14b4b4c: added file
942 D8388 - updated - 15e9b14b4b4c: added file
943 D8388 - updated - 6320b7d714cf: one: first commit to review
943 D8388 - updated - 6320b7d714cf: one: first commit to review
944 D8388 - updated - 3ee132d41dbc: two: second commit to review
944 D8388 - updated - 3ee132d41dbc: two: second commit to review
945 D8388 - updated - 30682b960804: 3: a commit with no detailed message
945 D8388 - updated - 30682b960804: 3: a commit with no detailed message
946 D8388 - updated - e919cdf3d4fe: four: extend the fold range
946 D8388 - updated - e919cdf3d4fe: four: extend the fold range
947 updating local commit list for D8388
947 updating local commit list for D8388
948 new commits: ['15e9b14b4b4c', '6320b7d714cf', '3ee132d41dbc', '30682b960804', 'e919cdf3d4fe']
948 new commits: ['15e9b14b4b4c', '6320b7d714cf', '3ee132d41dbc', '30682b960804', 'e919cdf3d4fe']
949
949
950 $ hg log -r tip -v
950 $ hg log -r tip -v
951 obsolete feature not enabled but 12 markers found!
951 obsolete feature not enabled but 12 markers found!
952 changeset: 16:e919cdf3d4fe
952 changeset: 16:e919cdf3d4fe
953 tag: tip
953 tag: tip
954 parent: 11:30682b960804
954 parent: 11:30682b960804
955 user: test
955 user: test
956 date: Thu Jan 01 00:00:00 1970 +0000
956 date: Thu Jan 01 00:00:00 1970 +0000
957 files: file2.txt file3.txt
957 files: file2.txt file3.txt
958 description:
958 description:
959 four: extend the fold range
959 four: extend the fold range
960
960
961 Differential Revision: https://phab.mercurial-scm.org/D8388
961 Differential Revision: https://phab.mercurial-scm.org/D8388
962
962
963
963
964
964
965 $ cd ..
965 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now