##// END OF EJS Templates
py3: add b'' prefixes in tests/test-obsolete-divergent.t...
Pulkit Goyal -
r38464:afa96dd5 default
parent child Browse files
Show More
@@ -1,527 +1,528
1 test-abort-checkin.t
1 test-abort-checkin.t
2 test-add.t
2 test-add.t
3 test-addremove-similar.t
3 test-addremove-similar.t
4 test-addremove.t
4 test-addremove.t
5 test-amend-subrepo.t
5 test-amend-subrepo.t
6 test-amend.t
6 test-amend.t
7 test-ancestor.py
7 test-ancestor.py
8 test-annotate.py
8 test-annotate.py
9 test-annotate.t
9 test-annotate.t
10 test-archive-symlinks.t
10 test-archive-symlinks.t
11 test-atomictempfile.py
11 test-atomictempfile.py
12 test-audit-path.t
12 test-audit-path.t
13 test-audit-subrepo.t
13 test-audit-subrepo.t
14 test-automv.t
14 test-automv.t
15 test-backout.t
15 test-backout.t
16 test-backwards-remove.t
16 test-backwards-remove.t
17 test-basic.t
17 test-basic.t
18 test-bheads.t
18 test-bheads.t
19 test-bisect.t
19 test-bisect.t
20 test-bisect2.t
20 test-bisect2.t
21 test-bisect3.t
21 test-bisect3.t
22 test-blackbox.t
22 test-blackbox.t
23 test-bookmarks-current.t
23 test-bookmarks-current.t
24 test-bookmarks-merge.t
24 test-bookmarks-merge.t
25 test-bookmarks-rebase.t
25 test-bookmarks-rebase.t
26 test-bookmarks-strip.t
26 test-bookmarks-strip.t
27 test-bookmarks.t
27 test-bookmarks.t
28 test-branch-change.t
28 test-branch-change.t
29 test-branch-option.t
29 test-branch-option.t
30 test-branch-tag-confict.t
30 test-branch-tag-confict.t
31 test-branches.t
31 test-branches.t
32 test-bundle-phases.t
32 test-bundle-phases.t
33 test-bundle-type.t
33 test-bundle-type.t
34 test-bundle-vs-outgoing.t
34 test-bundle-vs-outgoing.t
35 test-bundle2-multiple-changegroups.t
35 test-bundle2-multiple-changegroups.t
36 test-cappedreader.py
36 test-cappedreader.py
37 test-casecollision.t
37 test-casecollision.t
38 test-cat.t
38 test-cat.t
39 test-cbor.py
39 test-cbor.py
40 test-censor.t
40 test-censor.t
41 test-changelog-exec.t
41 test-changelog-exec.t
42 test-check-commit.t
42 test-check-commit.t
43 test-check-execute.t
43 test-check-execute.t
44 test-check-interfaces.py
44 test-check-interfaces.py
45 test-check-module-imports.t
45 test-check-module-imports.t
46 test-check-pyflakes.t
46 test-check-pyflakes.t
47 test-check-pylint.t
47 test-check-pylint.t
48 test-check-shbang.t
48 test-check-shbang.t
49 test-children.t
49 test-children.t
50 test-clone-cgi.t
50 test-clone-cgi.t
51 test-clone-pull-corruption.t
51 test-clone-pull-corruption.t
52 test-clone-r.t
52 test-clone-r.t
53 test-clone-update-order.t
53 test-clone-update-order.t
54 test-commit-amend.t
54 test-commit-amend.t
55 test-commit-interactive.t
55 test-commit-interactive.t
56 test-commit-multiple.t
56 test-commit-multiple.t
57 test-commit-unresolved.t
57 test-commit-unresolved.t
58 test-commit.t
58 test-commit.t
59 test-committer.t
59 test-committer.t
60 test-completion.t
60 test-completion.t
61 test-config-env.py
61 test-config-env.py
62 test-config.t
62 test-config.t
63 test-conflict.t
63 test-conflict.t
64 test-confused-revert.t
64 test-confused-revert.t
65 test-context.py
65 test-context.py
66 test-contrib-check-code.t
66 test-contrib-check-code.t
67 test-contrib-check-commit.t
67 test-contrib-check-commit.t
68 test-convert-authormap.t
68 test-convert-authormap.t
69 test-convert-clonebranches.t
69 test-convert-clonebranches.t
70 test-convert-cvs-branch.t
70 test-convert-cvs-branch.t
71 test-convert-cvs-detectmerge.t
71 test-convert-cvs-detectmerge.t
72 test-convert-cvs-synthetic.t
72 test-convert-cvs-synthetic.t
73 test-convert-cvs.t
73 test-convert-cvs.t
74 test-convert-cvsnt-mergepoints.t
74 test-convert-cvsnt-mergepoints.t
75 test-convert-datesort.t
75 test-convert-datesort.t
76 test-convert-filemap.t
76 test-convert-filemap.t
77 test-convert-hg-sink.t
77 test-convert-hg-sink.t
78 test-convert-hg-source.t
78 test-convert-hg-source.t
79 test-convert-hg-startrev.t
79 test-convert-hg-startrev.t
80 test-convert-splicemap.t
80 test-convert-splicemap.t
81 test-convert-tagsbranch-topology.t
81 test-convert-tagsbranch-topology.t
82 test-copy-move-merge.t
82 test-copy-move-merge.t
83 test-copy.t
83 test-copy.t
84 test-copytrace-heuristics.t
84 test-copytrace-heuristics.t
85 test-debugbuilddag.t
85 test-debugbuilddag.t
86 test-debugbundle.t
86 test-debugbundle.t
87 test-debugextensions.t
87 test-debugextensions.t
88 test-debugindexdot.t
88 test-debugindexdot.t
89 test-debugrename.t
89 test-debugrename.t
90 test-default-push.t
90 test-default-push.t
91 test-diff-binary-file.t
91 test-diff-binary-file.t
92 test-diff-change.t
92 test-diff-change.t
93 test-diff-copy-depth.t
93 test-diff-copy-depth.t
94 test-diff-hashes.t
94 test-diff-hashes.t
95 test-diff-ignore-whitespace.t
95 test-diff-ignore-whitespace.t
96 test-diff-indent-heuristic.t
96 test-diff-indent-heuristic.t
97 test-diff-issue2761.t
97 test-diff-issue2761.t
98 test-diff-newlines.t
98 test-diff-newlines.t
99 test-diff-reverse.t
99 test-diff-reverse.t
100 test-diff-subdir.t
100 test-diff-subdir.t
101 test-diff-unified.t
101 test-diff-unified.t
102 test-diff-upgrade.t
102 test-diff-upgrade.t
103 test-diffdir.t
103 test-diffdir.t
104 test-diffstat.t
104 test-diffstat.t
105 test-directaccess.t
105 test-directaccess.t
106 test-dirstate-backup.t
106 test-dirstate-backup.t
107 test-dirstate-nonnormalset.t
107 test-dirstate-nonnormalset.t
108 test-dirstate.t
108 test-dirstate.t
109 test-dispatch.py
109 test-dispatch.py
110 test-doctest.py
110 test-doctest.py
111 test-double-merge.t
111 test-double-merge.t
112 test-drawdag.t
112 test-drawdag.t
113 test-duplicateoptions.py
113 test-duplicateoptions.py
114 test-editor-filename.t
114 test-editor-filename.t
115 test-empty-dir.t
115 test-empty-dir.t
116 test-empty-file.t
116 test-empty-file.t
117 test-empty-group.t
117 test-empty-group.t
118 test-empty.t
118 test-empty.t
119 test-encode.t
119 test-encode.t
120 test-encoding-func.py
120 test-encoding-func.py
121 test-encoding.t
121 test-encoding.t
122 test-eol-add.t
122 test-eol-add.t
123 test-eol-clone.t
123 test-eol-clone.t
124 test-eol-hook.t
124 test-eol-hook.t
125 test-eol-patch.t
125 test-eol-patch.t
126 test-eol-tag.t
126 test-eol-tag.t
127 test-eol-update.t
127 test-eol-update.t
128 test-eol.t
128 test-eol.t
129 test-eolfilename.t
129 test-eolfilename.t
130 test-excessive-merge.t
130 test-excessive-merge.t
131 test-exchange-obsmarkers-case-A1.t
131 test-exchange-obsmarkers-case-A1.t
132 test-exchange-obsmarkers-case-A2.t
132 test-exchange-obsmarkers-case-A2.t
133 test-exchange-obsmarkers-case-A3.t
133 test-exchange-obsmarkers-case-A3.t
134 test-exchange-obsmarkers-case-A4.t
134 test-exchange-obsmarkers-case-A4.t
135 test-exchange-obsmarkers-case-A5.t
135 test-exchange-obsmarkers-case-A5.t
136 test-exchange-obsmarkers-case-A6.t
136 test-exchange-obsmarkers-case-A6.t
137 test-exchange-obsmarkers-case-A7.t
137 test-exchange-obsmarkers-case-A7.t
138 test-exchange-obsmarkers-case-B1.t
138 test-exchange-obsmarkers-case-B1.t
139 test-exchange-obsmarkers-case-B2.t
139 test-exchange-obsmarkers-case-B2.t
140 test-exchange-obsmarkers-case-B3.t
140 test-exchange-obsmarkers-case-B3.t
141 test-exchange-obsmarkers-case-B4.t
141 test-exchange-obsmarkers-case-B4.t
142 test-exchange-obsmarkers-case-B5.t
142 test-exchange-obsmarkers-case-B5.t
143 test-exchange-obsmarkers-case-B6.t
143 test-exchange-obsmarkers-case-B6.t
144 test-exchange-obsmarkers-case-B7.t
144 test-exchange-obsmarkers-case-B7.t
145 test-exchange-obsmarkers-case-C1.t
145 test-exchange-obsmarkers-case-C1.t
146 test-exchange-obsmarkers-case-C2.t
146 test-exchange-obsmarkers-case-C2.t
147 test-exchange-obsmarkers-case-C3.t
147 test-exchange-obsmarkers-case-C3.t
148 test-exchange-obsmarkers-case-C4.t
148 test-exchange-obsmarkers-case-C4.t
149 test-exchange-obsmarkers-case-D1.t
149 test-exchange-obsmarkers-case-D1.t
150 test-exchange-obsmarkers-case-D2.t
150 test-exchange-obsmarkers-case-D2.t
151 test-exchange-obsmarkers-case-D3.t
151 test-exchange-obsmarkers-case-D3.t
152 test-exchange-obsmarkers-case-D4.t
152 test-exchange-obsmarkers-case-D4.t
153 test-execute-bit.t
153 test-execute-bit.t
154 test-export.t
154 test-export.t
155 test-extdata.t
155 test-extdata.t
156 test-extdiff.t
156 test-extdiff.t
157 test-extensions-afterloaded.t
157 test-extensions-afterloaded.t
158 test-extensions-wrapfunction.py
158 test-extensions-wrapfunction.py
159 test-extra-filelog-entry.t
159 test-extra-filelog-entry.t
160 test-fetch.t
160 test-fetch.t
161 test-filebranch.t
161 test-filebranch.t
162 test-filecache.py
162 test-filecache.py
163 test-filelog.py
163 test-filelog.py
164 test-fileset-generated.t
164 test-fileset-generated.t
165 test-fileset.t
165 test-fileset.t
166 test-fix-topology.t
166 test-fix-topology.t
167 test-flags.t
167 test-flags.t
168 test-generaldelta.t
168 test-generaldelta.t
169 test-getbundle.t
169 test-getbundle.t
170 test-git-export.t
170 test-git-export.t
171 test-glog-topological.t
171 test-glog-topological.t
172 test-gpg.t
172 test-gpg.t
173 test-graft.t
173 test-graft.t
174 test-hg-parseurl.py
174 test-hg-parseurl.py
175 test-hghave.t
175 test-hghave.t
176 test-hgignore.t
176 test-hgignore.t
177 test-hgk.t
177 test-hgk.t
178 test-hgrc.t
178 test-hgrc.t
179 test-hgweb-bundle.t
179 test-hgweb-bundle.t
180 test-hgweb-descend-empties.t
180 test-hgweb-descend-empties.t
181 test-hgweb-empty.t
181 test-hgweb-empty.t
182 test-hgweb-removed.t
182 test-hgweb-removed.t
183 test-hgwebdir-paths.py
183 test-hgwebdir-paths.py
184 test-hgwebdirsym.t
184 test-hgwebdirsym.t
185 test-histedit-arguments.t
185 test-histedit-arguments.t
186 test-histedit-base.t
186 test-histedit-base.t
187 test-histedit-bookmark-motion.t
187 test-histedit-bookmark-motion.t
188 test-histedit-commute.t
188 test-histedit-commute.t
189 test-histedit-drop.t
189 test-histedit-drop.t
190 test-histedit-edit.t
190 test-histedit-edit.t
191 test-histedit-fold-non-commute.t
191 test-histedit-fold-non-commute.t
192 test-histedit-fold.t
192 test-histedit-fold.t
193 test-histedit-no-change.t
193 test-histedit-no-change.t
194 test-histedit-non-commute-abort.t
194 test-histedit-non-commute-abort.t
195 test-histedit-non-commute.t
195 test-histedit-non-commute.t
196 test-histedit-obsolete.t
196 test-histedit-obsolete.t
197 test-histedit-outgoing.t
197 test-histedit-outgoing.t
198 test-histedit-templates.t
198 test-histedit-templates.t
199 test-http-branchmap.t
199 test-http-branchmap.t
200 test-http-bundle1.t
200 test-http-bundle1.t
201 test-http-clone-r.t
201 test-http-clone-r.t
202 test-http.t
202 test-http.t
203 test-hybridencode.py
203 test-hybridencode.py
204 test-identify.t
204 test-identify.t
205 test-impexp-branch.t
205 test-impexp-branch.t
206 test-import-bypass.t
206 test-import-bypass.t
207 test-import-eol.t
207 test-import-eol.t
208 test-import-merge.t
208 test-import-merge.t
209 test-import-unknown.t
209 test-import-unknown.t
210 test-import.t
210 test-import.t
211 test-imports-checker.t
211 test-imports-checker.t
212 test-incoming-outgoing.t
212 test-incoming-outgoing.t
213 test-inherit-mode.t
213 test-inherit-mode.t
214 test-init.t
214 test-init.t
215 test-issue1089.t
215 test-issue1089.t
216 test-issue1102.t
216 test-issue1102.t
217 test-issue1175.t
217 test-issue1175.t
218 test-issue1306.t
218 test-issue1306.t
219 test-issue1438.t
219 test-issue1438.t
220 test-issue1502.t
220 test-issue1502.t
221 test-issue1802.t
221 test-issue1802.t
222 test-issue1877.t
222 test-issue1877.t
223 test-issue1993.t
223 test-issue1993.t
224 test-issue2137.t
224 test-issue2137.t
225 test-issue3084.t
225 test-issue3084.t
226 test-issue4074.t
226 test-issue4074.t
227 test-issue522.t
227 test-issue522.t
228 test-issue586.t
228 test-issue586.t
229 test-issue612.t
229 test-issue612.t
230 test-issue619.t
230 test-issue619.t
231 test-issue660.t
231 test-issue660.t
232 test-issue672.t
232 test-issue672.t
233 test-issue842.t
233 test-issue842.t
234 test-journal-exists.t
234 test-journal-exists.t
235 test-journal-share.t
235 test-journal-share.t
236 test-journal.t
236 test-journal.t
237 test-known.t
237 test-known.t
238 test-largefiles-cache.t
238 test-largefiles-cache.t
239 test-largefiles-misc.t
239 test-largefiles-misc.t
240 test-largefiles-small-disk.t
240 test-largefiles-small-disk.t
241 test-largefiles-update.t
241 test-largefiles-update.t
242 test-largefiles.t
242 test-largefiles.t
243 test-lfs-largefiles.t
243 test-lfs-largefiles.t
244 test-lfs-pointer.py
244 test-lfs-pointer.py
245 test-linerange.py
245 test-linerange.py
246 test-locate.t
246 test-locate.t
247 test-lock-badness.t
247 test-lock-badness.t
248 test-log-linerange.t
248 test-log-linerange.t
249 test-log.t
249 test-log.t
250 test-logexchange.t
250 test-logexchange.t
251 test-lrucachedict.py
251 test-lrucachedict.py
252 test-mactext.t
252 test-mactext.t
253 test-mailmap.t
253 test-mailmap.t
254 test-manifest-merging.t
254 test-manifest-merging.t
255 test-manifest.py
255 test-manifest.py
256 test-manifest.t
256 test-manifest.t
257 test-match.py
257 test-match.py
258 test-mdiff.py
258 test-mdiff.py
259 test-merge-changedelete.t
259 test-merge-changedelete.t
260 test-merge-closedheads.t
260 test-merge-closedheads.t
261 test-merge-commit.t
261 test-merge-commit.t
262 test-merge-criss-cross.t
262 test-merge-criss-cross.t
263 test-merge-default.t
263 test-merge-default.t
264 test-merge-force.t
264 test-merge-force.t
265 test-merge-halt.t
265 test-merge-halt.t
266 test-merge-internal-tools-pattern.t
266 test-merge-internal-tools-pattern.t
267 test-merge-local.t
267 test-merge-local.t
268 test-merge-remove.t
268 test-merge-remove.t
269 test-merge-revert.t
269 test-merge-revert.t
270 test-merge-revert2.t
270 test-merge-revert2.t
271 test-merge-subrepos.t
271 test-merge-subrepos.t
272 test-merge-symlinks.t
272 test-merge-symlinks.t
273 test-merge-tools.t
273 test-merge-tools.t
274 test-merge-types.t
274 test-merge-types.t
275 test-merge1.t
275 test-merge1.t
276 test-merge10.t
276 test-merge10.t
277 test-merge2.t
277 test-merge2.t
278 test-merge4.t
278 test-merge4.t
279 test-merge5.t
279 test-merge5.t
280 test-merge6.t
280 test-merge6.t
281 test-merge7.t
281 test-merge7.t
282 test-merge8.t
282 test-merge8.t
283 test-merge9.t
283 test-merge9.t
284 test-minifileset.py
284 test-minifileset.py
285 test-minirst.py
285 test-minirst.py
286 test-mq-git.t
286 test-mq-git.t
287 test-mq-header-date.t
287 test-mq-header-date.t
288 test-mq-header-from.t
288 test-mq-header-from.t
289 test-mq-merge.t
289 test-mq-merge.t
290 test-mq-pull-from-bundle.t
290 test-mq-pull-from-bundle.t
291 test-mq-qclone-http.t
291 test-mq-qclone-http.t
292 test-mq-qdelete.t
292 test-mq-qdelete.t
293 test-mq-qdiff.t
293 test-mq-qdiff.t
294 test-mq-qfold.t
294 test-mq-qfold.t
295 test-mq-qgoto.t
295 test-mq-qgoto.t
296 test-mq-qimport-fail-cleanup.t
296 test-mq-qimport-fail-cleanup.t
297 test-mq-qnew.t
297 test-mq-qnew.t
298 test-mq-qpush-exact.t
298 test-mq-qpush-exact.t
299 test-mq-qqueue.t
299 test-mq-qqueue.t
300 test-mq-qrefresh-interactive.t
300 test-mq-qrefresh-interactive.t
301 test-mq-qrefresh-replace-log-message.t
301 test-mq-qrefresh-replace-log-message.t
302 test-mq-qrefresh.t
302 test-mq-qrefresh.t
303 test-mq-qrename.t
303 test-mq-qrename.t
304 test-mq-qsave.t
304 test-mq-qsave.t
305 test-mq-safety.t
305 test-mq-safety.t
306 test-mq-subrepo.t
306 test-mq-subrepo.t
307 test-mq-symlinks.t
307 test-mq-symlinks.t
308 test-mv-cp-st-diff.t
308 test-mv-cp-st-diff.t
309 test-narrow-archive.t
309 test-narrow-archive.t
310 test-narrow-clone-no-ellipsis.t
310 test-narrow-clone-no-ellipsis.t
311 test-narrow-clone-non-narrow-server.t
311 test-narrow-clone-non-narrow-server.t
312 test-narrow-clone-nonlinear.t
312 test-narrow-clone-nonlinear.t
313 test-narrow-clone.t
313 test-narrow-clone.t
314 test-narrow-commit.t
314 test-narrow-commit.t
315 test-narrow-copies.t
315 test-narrow-copies.t
316 test-narrow-debugcommands.t
316 test-narrow-debugcommands.t
317 test-narrow-debugrebuilddirstate.t
317 test-narrow-debugrebuilddirstate.t
318 test-narrow-exchange-merges.t
318 test-narrow-exchange-merges.t
319 test-narrow-exchange.t
319 test-narrow-exchange.t
320 test-narrow-expanddirstate.t
320 test-narrow-expanddirstate.t
321 test-narrow-merge.t
321 test-narrow-merge.t
322 test-narrow-patch.t
322 test-narrow-patch.t
323 test-narrow-patterns.t
323 test-narrow-patterns.t
324 test-narrow-pull.t
324 test-narrow-pull.t
325 test-narrow-rebase.t
325 test-narrow-rebase.t
326 test-narrow-shallow-merges.t
326 test-narrow-shallow-merges.t
327 test-narrow-shallow.t
327 test-narrow-shallow.t
328 test-narrow-strip.t
328 test-narrow-strip.t
329 test-narrow-update.t
329 test-narrow-update.t
330 test-narrow-widen.t
330 test-narrow-widen.t
331 test-narrow.t
331 test-narrow.t
332 test-nested-repo.t
332 test-nested-repo.t
333 test-newbranch.t
333 test-newbranch.t
334 test-obshistory.t
334 test-obshistory.t
335 test-obsmarker-template.t
335 test-obsmarker-template.t
336 test-obsmarkers-effectflag.t
336 test-obsmarkers-effectflag.t
337 test-obsolete-bundle-strip.t
337 test-obsolete-bundle-strip.t
338 test-obsolete-changeset-exchange.t
338 test-obsolete-changeset-exchange.t
339 test-obsolete-checkheads.t
339 test-obsolete-checkheads.t
340 test-obsolete-distributed.t
340 test-obsolete-distributed.t
341 test-obsolete-divergent.t
341 test-obsolete-tag-cache.t
342 test-obsolete-tag-cache.t
342 test-pager.t
343 test-pager.t
343 test-parents.t
344 test-parents.t
344 test-parseindex2.py
345 test-parseindex2.py
345 test-patch-offset.t
346 test-patch-offset.t
346 test-patch.t
347 test-patch.t
347 test-pathconflicts-merge.t
348 test-pathconflicts-merge.t
348 test-pathconflicts-update.t
349 test-pathconflicts-update.t
349 test-pathencode.py
350 test-pathencode.py
350 test-pending.t
351 test-pending.t
351 test-permissions.t
352 test-permissions.t
352 test-phases.t
353 test-phases.t
353 test-pull-branch.t
354 test-pull-branch.t
354 test-pull-http.t
355 test-pull-http.t
355 test-pull-permission.t
356 test-pull-permission.t
356 test-pull-pull-corruption.t
357 test-pull-pull-corruption.t
357 test-pull-r.t
358 test-pull-r.t
358 test-pull-update.t
359 test-pull-update.t
359 test-pull.t
360 test-pull.t
360 test-purge.t
361 test-purge.t
361 test-push-checkheads-partial-C1.t
362 test-push-checkheads-partial-C1.t
362 test-push-checkheads-partial-C2.t
363 test-push-checkheads-partial-C2.t
363 test-push-checkheads-partial-C3.t
364 test-push-checkheads-partial-C3.t
364 test-push-checkheads-partial-C4.t
365 test-push-checkheads-partial-C4.t
365 test-push-checkheads-pruned-B1.t
366 test-push-checkheads-pruned-B1.t
366 test-push-checkheads-pruned-B2.t
367 test-push-checkheads-pruned-B2.t
367 test-push-checkheads-pruned-B3.t
368 test-push-checkheads-pruned-B3.t
368 test-push-checkheads-pruned-B4.t
369 test-push-checkheads-pruned-B4.t
369 test-push-checkheads-pruned-B5.t
370 test-push-checkheads-pruned-B5.t
370 test-push-checkheads-pruned-B6.t
371 test-push-checkheads-pruned-B6.t
371 test-push-checkheads-pruned-B7.t
372 test-push-checkheads-pruned-B7.t
372 test-push-checkheads-pruned-B8.t
373 test-push-checkheads-pruned-B8.t
373 test-push-checkheads-superceed-A1.t
374 test-push-checkheads-superceed-A1.t
374 test-push-checkheads-superceed-A2.t
375 test-push-checkheads-superceed-A2.t
375 test-push-checkheads-superceed-A3.t
376 test-push-checkheads-superceed-A3.t
376 test-push-checkheads-superceed-A4.t
377 test-push-checkheads-superceed-A4.t
377 test-push-checkheads-superceed-A5.t
378 test-push-checkheads-superceed-A5.t
378 test-push-checkheads-superceed-A6.t
379 test-push-checkheads-superceed-A6.t
379 test-push-checkheads-superceed-A7.t
380 test-push-checkheads-superceed-A7.t
380 test-push-checkheads-superceed-A8.t
381 test-push-checkheads-superceed-A8.t
381 test-push-checkheads-unpushed-D1.t
382 test-push-checkheads-unpushed-D1.t
382 test-push-checkheads-unpushed-D2.t
383 test-push-checkheads-unpushed-D2.t
383 test-push-checkheads-unpushed-D3.t
384 test-push-checkheads-unpushed-D3.t
384 test-push-checkheads-unpushed-D4.t
385 test-push-checkheads-unpushed-D4.t
385 test-push-checkheads-unpushed-D5.t
386 test-push-checkheads-unpushed-D5.t
386 test-push-checkheads-unpushed-D6.t
387 test-push-checkheads-unpushed-D6.t
387 test-push-checkheads-unpushed-D7.t
388 test-push-checkheads-unpushed-D7.t
388 test-push-http.t
389 test-push-http.t
389 test-push-warn.t
390 test-push-warn.t
390 test-push.t
391 test-push.t
391 test-pushvars.t
392 test-pushvars.t
392 test-qrecord.t
393 test-qrecord.t
393 test-rebase-abort.t
394 test-rebase-abort.t
394 test-rebase-base-flag.t
395 test-rebase-base-flag.t
395 test-rebase-bookmarks.t
396 test-rebase-bookmarks.t
396 test-rebase-brute-force.t
397 test-rebase-brute-force.t
397 test-rebase-cache.t
398 test-rebase-cache.t
398 test-rebase-check-restore.t
399 test-rebase-check-restore.t
399 test-rebase-collapse.t
400 test-rebase-collapse.t
400 test-rebase-conflicts.t
401 test-rebase-conflicts.t
401 test-rebase-dest.t
402 test-rebase-dest.t
402 test-rebase-detach.t
403 test-rebase-detach.t
403 test-rebase-emptycommit.t
404 test-rebase-emptycommit.t
404 test-rebase-inmemory.t
405 test-rebase-inmemory.t
405 test-rebase-interruptions.t
406 test-rebase-interruptions.t
406 test-rebase-issue-noparam-single-rev.t
407 test-rebase-issue-noparam-single-rev.t
407 test-rebase-legacy.t
408 test-rebase-legacy.t
408 test-rebase-mq-skip.t
409 test-rebase-mq-skip.t
409 test-rebase-mq.t
410 test-rebase-mq.t
410 test-rebase-named-branches.t
411 test-rebase-named-branches.t
411 test-rebase-newancestor.t
412 test-rebase-newancestor.t
412 test-rebase-obsolete.t
413 test-rebase-obsolete.t
413 test-rebase-parameters.t
414 test-rebase-parameters.t
414 test-rebase-partial.t
415 test-rebase-partial.t
415 test-rebase-pull.t
416 test-rebase-pull.t
416 test-rebase-rename.t
417 test-rebase-rename.t
417 test-rebase-scenario-global.t
418 test-rebase-scenario-global.t
418 test-rebase-templates.t
419 test-rebase-templates.t
419 test-rebase-transaction.t
420 test-rebase-transaction.t
420 test-rebuildstate.t
421 test-rebuildstate.t
421 test-record.t
422 test-record.t
422 test-relink.t
423 test-relink.t
423 test-remove.t
424 test-remove.t
424 test-rename-after-merge.t
425 test-rename-after-merge.t
425 test-rename-dir-merge.t
426 test-rename-dir-merge.t
426 test-rename-merge1.t
427 test-rename-merge1.t
427 test-rename.t
428 test-rename.t
428 test-repair-strip.t
429 test-repair-strip.t
429 test-repo-compengines.t
430 test-repo-compengines.t
430 test-resolve.t
431 test-resolve.t
431 test-revert-flags.t
432 test-revert-flags.t
432 test-revert-interactive.t
433 test-revert-interactive.t
433 test-revert-unknown.t
434 test-revert-unknown.t
434 test-revlog-ancestry.py
435 test-revlog-ancestry.py
435 test-revlog-group-emptyiter.t
436 test-revlog-group-emptyiter.t
436 test-revlog-mmapindex.t
437 test-revlog-mmapindex.t
437 test-revlog-packentry.t
438 test-revlog-packentry.t
438 test-revlog-raw.py
439 test-revlog-raw.py
439 test-revlog-v2.t
440 test-revlog-v2.t
440 test-revset-dirstate-parents.t
441 test-revset-dirstate-parents.t
441 test-revset-legacy-lookup.t
442 test-revset-legacy-lookup.t
442 test-revset-outgoing.t
443 test-revset-outgoing.t
443 test-rollback.t
444 test-rollback.t
444 test-run-tests.py
445 test-run-tests.py
445 test-run-tests.t
446 test-run-tests.t
446 test-schemes.t
447 test-schemes.t
447 test-serve.t
448 test-serve.t
448 test-setdiscovery.t
449 test-setdiscovery.t
449 test-share.t
450 test-share.t
450 test-shelve.t
451 test-shelve.t
451 test-show-stack.t
452 test-show-stack.t
452 test-show-work.t
453 test-show-work.t
453 test-show.t
454 test-show.t
454 test-simple-update.t
455 test-simple-update.t
455 test-simplekeyvaluefile.py
456 test-simplekeyvaluefile.py
456 test-simplemerge.py
457 test-simplemerge.py
457 test-single-head.t
458 test-single-head.t
458 test-sparse-clear.t
459 test-sparse-clear.t
459 test-sparse-clone.t
460 test-sparse-clone.t
460 test-sparse-import.t
461 test-sparse-import.t
461 test-sparse-merges.t
462 test-sparse-merges.t
462 test-sparse-profiles.t
463 test-sparse-profiles.t
463 test-sparse-requirement.t
464 test-sparse-requirement.t
464 test-sparse-verbose-json.t
465 test-sparse-verbose-json.t
465 test-sparse.t
466 test-sparse.t
466 test-split.t
467 test-split.t
467 test-ssh-bundle1.t
468 test-ssh-bundle1.t
468 test-ssh-clone-r.t
469 test-ssh-clone-r.t
469 test-ssh-proto-unbundle.t
470 test-ssh-proto-unbundle.t
470 test-ssh-proto.t
471 test-ssh-proto.t
471 test-ssh.t
472 test-ssh.t
472 test-sshserver.py
473 test-sshserver.py
473 test-stack.t
474 test-stack.t
474 test-status-inprocess.py
475 test-status-inprocess.py
475 test-status-rev.t
476 test-status-rev.t
476 test-status-terse.t
477 test-status-terse.t
477 test-strict.t
478 test-strict.t
478 test-strip-cross.t
479 test-strip-cross.t
479 test-strip.t
480 test-strip.t
480 test-subrepo-deep-nested-change.t
481 test-subrepo-deep-nested-change.t
481 test-subrepo-missing.t
482 test-subrepo-missing.t
482 test-subrepo-paths.t
483 test-subrepo-paths.t
483 test-subrepo-recursion.t
484 test-subrepo-recursion.t
484 test-subrepo-relative-path.t
485 test-subrepo-relative-path.t
485 test-subrepo.t
486 test-subrepo.t
486 test-symlink-os-yes-fs-no.py
487 test-symlink-os-yes-fs-no.py
487 test-symlink-placeholder.t
488 test-symlink-placeholder.t
488 test-symlinks.t
489 test-symlinks.t
489 test-tag.t
490 test-tag.t
490 test-tags.t
491 test-tags.t
491 test-template-basic.t
492 test-template-basic.t
492 test-template-functions.t
493 test-template-functions.t
493 test-template-keywords.t
494 test-template-keywords.t
494 test-template-map.t
495 test-template-map.t
495 test-transplant.t
496 test-transplant.t
496 test-treemanifest.t
497 test-treemanifest.t
497 test-ui-color.py
498 test-ui-color.py
498 test-ui-config.py
499 test-ui-config.py
499 test-ui-verbosity.py
500 test-ui-verbosity.py
500 test-unamend.t
501 test-unamend.t
501 test-unbundlehash.t
502 test-unbundlehash.t
502 test-uncommit.t
503 test-uncommit.t
503 test-unified-test.t
504 test-unified-test.t
504 test-unionrepo.t
505 test-unionrepo.t
505 test-unrelated-pull.t
506 test-unrelated-pull.t
506 test-up-local-change.t
507 test-up-local-change.t
507 test-update-branches.t
508 test-update-branches.t
508 test-update-dest.t
509 test-update-dest.t
509 test-update-issue1456.t
510 test-update-issue1456.t
510 test-update-names.t
511 test-update-names.t
511 test-update-reverse.t
512 test-update-reverse.t
512 test-upgrade-repo.t
513 test-upgrade-repo.t
513 test-url-download.t
514 test-url-download.t
514 test-url-rev.t
515 test-url-rev.t
515 test-url.py
516 test-url.py
516 test-username-newline.t
517 test-username-newline.t
517 test-verify.t
518 test-verify.t
518 test-walk.t
519 test-walk.t
519 test-walkrepo.py
520 test-walkrepo.py
520 test-websub.t
521 test-websub.t
521 test-win32text.t
522 test-win32text.t
522 test-wireproto-clientreactor.py
523 test-wireproto-clientreactor.py
523 test-wireproto-framing.py
524 test-wireproto-framing.py
524 test-wireproto-serverreactor.py
525 test-wireproto-serverreactor.py
525 test-wireproto.py
526 test-wireproto.py
526 test-wsgirequest.py
527 test-wsgirequest.py
527 test-xdg.t
528 test-xdg.t
@@ -1,766 +1,766
1 Test file dedicated to testing the divergent troubles from obsolete changeset.
1 Test file dedicated to testing the divergent troubles from obsolete changeset.
2
2
3 This is the most complex troubles from far so we isolate it in a dedicated
3 This is the most complex troubles from far so we isolate it in a dedicated
4 file.
4 file.
5
5
6 Enable obsolete
6 Enable obsolete
7
7
8 $ cat >> $HGRCPATH << EOF
8 $ cat >> $HGRCPATH << EOF
9 > [ui]
9 > [ui]
10 > logtemplate = {rev}:{node|short} {desc}{if(obsfate, " [{join(obsfate, "; ")}]")}\n
10 > logtemplate = {rev}:{node|short} {desc}{if(obsfate, " [{join(obsfate, "; ")}]")}\n
11 > [experimental]
11 > [experimental]
12 > evolution.createmarkers=True
12 > evolution.createmarkers=True
13 > [extensions]
13 > [extensions]
14 > drawdag=$TESTDIR/drawdag.py
14 > drawdag=$TESTDIR/drawdag.py
15 > [alias]
15 > [alias]
16 > debugobsolete = debugobsolete -d '0 0'
16 > debugobsolete = debugobsolete -d '0 0'
17 > [phases]
17 > [phases]
18 > publish=False
18 > publish=False
19 > [templates]
19 > [templates]
20 > wuentryshort = '{instability}:{if(divergentnodes, " ")}{divergentnodes} {reason} {node|shortest}\n'
20 > wuentryshort = '{instability}:{if(divergentnodes, " ")}{divergentnodes} {reason} {node|shortest}\n'
21 > whyunstableshort = '{whyunstable % wuentryshort}'
21 > whyunstableshort = '{whyunstable % wuentryshort}'
22 > wuentryshorter = '{instability}:{divergentnodes % " {node|shortest} ({phase})"} {reason} {node|shortest}\n'
22 > wuentryshorter = '{instability}:{divergentnodes % " {node|shortest} ({phase})"} {reason} {node|shortest}\n'
23 > whyunstableshorter = '{whyunstable % wuentryshorter}'
23 > whyunstableshorter = '{whyunstable % wuentryshorter}'
24 > EOF
24 > EOF
25
25
26
26
27 $ mkcommit() {
27 $ mkcommit() {
28 > echo "$1" > "$1"
28 > echo "$1" > "$1"
29 > hg add "$1"
29 > hg add "$1"
30 > hg ci -m "$1"
30 > hg ci -m "$1"
31 > }
31 > }
32 $ getid() {
32 $ getid() {
33 > hg log --hidden -r "desc('$1')" -T '{node}\n'
33 > hg log --hidden -r "desc('$1')" -T '{node}\n'
34 > }
34 > }
35
35
36 setup repo
36 setup repo
37
37
38 $ hg init reference
38 $ hg init reference
39 $ cd reference
39 $ cd reference
40 $ mkcommit base
40 $ mkcommit base
41 $ mkcommit A_0
41 $ mkcommit A_0
42 $ hg up 0
42 $ hg up 0
43 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
43 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
44 $ mkcommit A_1
44 $ mkcommit A_1
45 created new head
45 created new head
46 $ hg up 0
46 $ hg up 0
47 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
47 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
48 $ mkcommit A_2
48 $ mkcommit A_2
49 created new head
49 created new head
50 $ hg up 0
50 $ hg up 0
51 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
51 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
52 $ cd ..
52 $ cd ..
53
53
54
54
55 $ newcase() {
55 $ newcase() {
56 > hg clone -u 0 -q reference $1
56 > hg clone -u 0 -q reference $1
57 > cd $1
57 > cd $1
58 > }
58 > }
59
59
60 direct divergence
60 direct divergence
61 -----------------
61 -----------------
62
62
63 A_1 have two direct and divergent successors A_1 and A_1
63 A_1 have two direct and divergent successors A_1 and A_1
64
64
65 $ newcase direct
65 $ newcase direct
66 $ hg debugobsolete `getid A_0` `getid A_1`
66 $ hg debugobsolete `getid A_0` `getid A_1`
67 obsoleted 1 changesets
67 obsoleted 1 changesets
68 $ hg debugobsolete `getid A_0` `getid A_2`
68 $ hg debugobsolete `getid A_0` `getid A_2`
69 2 new content-divergent changesets
69 2 new content-divergent changesets
70 $ hg log -G --hidden
70 $ hg log -G --hidden
71 * 3:392fd25390da A_2
71 * 3:392fd25390da A_2
72 |
72 |
73 | * 2:82623d38b9ba A_1
73 | * 2:82623d38b9ba A_1
74 |/
74 |/
75 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
75 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
76 |/
76 |/
77 @ 0:d20a80d4def3 base
77 @ 0:d20a80d4def3 base
78
78
79 $ hg debugsuccessorssets --hidden 'all()'
79 $ hg debugsuccessorssets --hidden 'all()'
80 d20a80d4def3
80 d20a80d4def3
81 d20a80d4def3
81 d20a80d4def3
82 007dc284c1f8
82 007dc284c1f8
83 82623d38b9ba
83 82623d38b9ba
84 392fd25390da
84 392fd25390da
85 82623d38b9ba
85 82623d38b9ba
86 82623d38b9ba
86 82623d38b9ba
87 392fd25390da
87 392fd25390da
88 392fd25390da
88 392fd25390da
89 $ hg log -r 'contentdivergent()'
89 $ hg log -r 'contentdivergent()'
90 2:82623d38b9ba A_1
90 2:82623d38b9ba A_1
91 3:392fd25390da A_2
91 3:392fd25390da A_2
92 $ hg debugsuccessorssets 'all()' --closest
92 $ hg debugsuccessorssets 'all()' --closest
93 d20a80d4def3
93 d20a80d4def3
94 d20a80d4def3
94 d20a80d4def3
95 82623d38b9ba
95 82623d38b9ba
96 82623d38b9ba
96 82623d38b9ba
97 392fd25390da
97 392fd25390da
98 392fd25390da
98 392fd25390da
99 $ hg debugsuccessorssets 'all()' --closest --hidden
99 $ hg debugsuccessorssets 'all()' --closest --hidden
100 d20a80d4def3
100 d20a80d4def3
101 d20a80d4def3
101 d20a80d4def3
102 007dc284c1f8
102 007dc284c1f8
103 82623d38b9ba
103 82623d38b9ba
104 392fd25390da
104 392fd25390da
105 82623d38b9ba
105 82623d38b9ba
106 82623d38b9ba
106 82623d38b9ba
107 392fd25390da
107 392fd25390da
108 392fd25390da
108 392fd25390da
109
109
110 check that mercurial refuse to push
110 check that mercurial refuse to push
111
111
112 $ hg init ../other
112 $ hg init ../other
113 $ hg push ../other
113 $ hg push ../other
114 pushing to ../other
114 pushing to ../other
115 searching for changes
115 searching for changes
116 abort: push includes content-divergent changeset: 392fd25390da!
116 abort: push includes content-divergent changeset: 392fd25390da!
117 [255]
117 [255]
118
118
119 $ cd ..
119 $ cd ..
120
120
121
121
122 indirect divergence with known changeset
122 indirect divergence with known changeset
123 -------------------------------------------
123 -------------------------------------------
124
124
125 $ newcase indirect_known
125 $ newcase indirect_known
126 $ hg debugobsolete `getid A_0` `getid A_1`
126 $ hg debugobsolete `getid A_0` `getid A_1`
127 obsoleted 1 changesets
127 obsoleted 1 changesets
128 $ hg debugobsolete `getid A_0` `getid A_2`
128 $ hg debugobsolete `getid A_0` `getid A_2`
129 2 new content-divergent changesets
129 2 new content-divergent changesets
130 $ mkcommit A_3
130 $ mkcommit A_3
131 created new head
131 created new head
132 $ hg debugobsolete `getid A_2` `getid A_3`
132 $ hg debugobsolete `getid A_2` `getid A_3`
133 obsoleted 1 changesets
133 obsoleted 1 changesets
134 $ hg log -G --hidden
134 $ hg log -G --hidden
135 @ 4:01f36c5a8fda A_3
135 @ 4:01f36c5a8fda A_3
136 |
136 |
137 | x 3:392fd25390da A_2 [rewritten as 4:01f36c5a8fda]
137 | x 3:392fd25390da A_2 [rewritten as 4:01f36c5a8fda]
138 |/
138 |/
139 | * 2:82623d38b9ba A_1
139 | * 2:82623d38b9ba A_1
140 |/
140 |/
141 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
141 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
142 |/
142 |/
143 o 0:d20a80d4def3 base
143 o 0:d20a80d4def3 base
144
144
145 $ hg debugsuccessorssets --hidden 'all()'
145 $ hg debugsuccessorssets --hidden 'all()'
146 d20a80d4def3
146 d20a80d4def3
147 d20a80d4def3
147 d20a80d4def3
148 007dc284c1f8
148 007dc284c1f8
149 82623d38b9ba
149 82623d38b9ba
150 01f36c5a8fda
150 01f36c5a8fda
151 82623d38b9ba
151 82623d38b9ba
152 82623d38b9ba
152 82623d38b9ba
153 392fd25390da
153 392fd25390da
154 01f36c5a8fda
154 01f36c5a8fda
155 01f36c5a8fda
155 01f36c5a8fda
156 01f36c5a8fda
156 01f36c5a8fda
157 $ hg log -r 'contentdivergent()'
157 $ hg log -r 'contentdivergent()'
158 2:82623d38b9ba A_1
158 2:82623d38b9ba A_1
159 4:01f36c5a8fda A_3
159 4:01f36c5a8fda A_3
160 $ hg debugsuccessorssets 'all()' --closest
160 $ hg debugsuccessorssets 'all()' --closest
161 d20a80d4def3
161 d20a80d4def3
162 d20a80d4def3
162 d20a80d4def3
163 82623d38b9ba
163 82623d38b9ba
164 82623d38b9ba
164 82623d38b9ba
165 01f36c5a8fda
165 01f36c5a8fda
166 01f36c5a8fda
166 01f36c5a8fda
167 $ hg debugsuccessorssets 'all()' --closest --hidden
167 $ hg debugsuccessorssets 'all()' --closest --hidden
168 d20a80d4def3
168 d20a80d4def3
169 d20a80d4def3
169 d20a80d4def3
170 007dc284c1f8
170 007dc284c1f8
171 82623d38b9ba
171 82623d38b9ba
172 392fd25390da
172 392fd25390da
173 82623d38b9ba
173 82623d38b9ba
174 82623d38b9ba
174 82623d38b9ba
175 392fd25390da
175 392fd25390da
176 392fd25390da
176 392fd25390da
177 01f36c5a8fda
177 01f36c5a8fda
178 01f36c5a8fda
178 01f36c5a8fda
179 $ cd ..
179 $ cd ..
180
180
181
181
182 indirect divergence with known changeset
182 indirect divergence with known changeset
183 -------------------------------------------
183 -------------------------------------------
184
184
185 $ newcase indirect_unknown
185 $ newcase indirect_unknown
186 $ hg debugobsolete `getid A_0` aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
186 $ hg debugobsolete `getid A_0` aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
187 obsoleted 1 changesets
187 obsoleted 1 changesets
188 $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid A_1`
188 $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid A_1`
189 $ hg debugobsolete `getid A_0` `getid A_2`
189 $ hg debugobsolete `getid A_0` `getid A_2`
190 2 new content-divergent changesets
190 2 new content-divergent changesets
191 $ hg log -G --hidden
191 $ hg log -G --hidden
192 * 3:392fd25390da A_2
192 * 3:392fd25390da A_2
193 |
193 |
194 | * 2:82623d38b9ba A_1
194 | * 2:82623d38b9ba A_1
195 |/
195 |/
196 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
196 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
197 |/
197 |/
198 @ 0:d20a80d4def3 base
198 @ 0:d20a80d4def3 base
199
199
200 $ hg debugsuccessorssets --hidden 'all()'
200 $ hg debugsuccessorssets --hidden 'all()'
201 d20a80d4def3
201 d20a80d4def3
202 d20a80d4def3
202 d20a80d4def3
203 007dc284c1f8
203 007dc284c1f8
204 82623d38b9ba
204 82623d38b9ba
205 392fd25390da
205 392fd25390da
206 82623d38b9ba
206 82623d38b9ba
207 82623d38b9ba
207 82623d38b9ba
208 392fd25390da
208 392fd25390da
209 392fd25390da
209 392fd25390da
210 $ hg log -r 'contentdivergent()'
210 $ hg log -r 'contentdivergent()'
211 2:82623d38b9ba A_1
211 2:82623d38b9ba A_1
212 3:392fd25390da A_2
212 3:392fd25390da A_2
213 $ hg debugsuccessorssets 'all()' --closest
213 $ hg debugsuccessorssets 'all()' --closest
214 d20a80d4def3
214 d20a80d4def3
215 d20a80d4def3
215 d20a80d4def3
216 82623d38b9ba
216 82623d38b9ba
217 82623d38b9ba
217 82623d38b9ba
218 392fd25390da
218 392fd25390da
219 392fd25390da
219 392fd25390da
220 $ hg debugsuccessorssets 'all()' --closest --hidden
220 $ hg debugsuccessorssets 'all()' --closest --hidden
221 d20a80d4def3
221 d20a80d4def3
222 d20a80d4def3
222 d20a80d4def3
223 007dc284c1f8
223 007dc284c1f8
224 82623d38b9ba
224 82623d38b9ba
225 392fd25390da
225 392fd25390da
226 82623d38b9ba
226 82623d38b9ba
227 82623d38b9ba
227 82623d38b9ba
228 392fd25390da
228 392fd25390da
229 392fd25390da
229 392fd25390da
230 $ cd ..
230 $ cd ..
231
231
232 do not take unknown node in account if they are final
232 do not take unknown node in account if they are final
233 -----------------------------------------------------
233 -----------------------------------------------------
234
234
235 $ newcase final-unknown
235 $ newcase final-unknown
236 $ hg debugobsolete `getid A_0` `getid A_1`
236 $ hg debugobsolete `getid A_0` `getid A_1`
237 obsoleted 1 changesets
237 obsoleted 1 changesets
238 $ hg debugobsolete `getid A_1` `getid A_2`
238 $ hg debugobsolete `getid A_1` `getid A_2`
239 obsoleted 1 changesets
239 obsoleted 1 changesets
240 $ hg debugobsolete `getid A_0` bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
240 $ hg debugobsolete `getid A_0` bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
241 $ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccccccccccccccc
241 $ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccccccccccccccc
242 $ hg debugobsolete `getid A_1` dddddddddddddddddddddddddddddddddddddddd
242 $ hg debugobsolete `getid A_1` dddddddddddddddddddddddddddddddddddddddd
243
243
244 $ hg debugsuccessorssets --hidden 'desc('A_0')'
244 $ hg debugsuccessorssets --hidden 'desc('A_0')'
245 007dc284c1f8
245 007dc284c1f8
246 392fd25390da
246 392fd25390da
247 $ hg debugsuccessorssets 'desc('A_0')' --closest
247 $ hg debugsuccessorssets 'desc('A_0')' --closest
248 $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden
248 $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden
249 007dc284c1f8
249 007dc284c1f8
250 82623d38b9ba
250 82623d38b9ba
251
251
252 $ cd ..
252 $ cd ..
253
253
254 divergence that converge again is not divergence anymore
254 divergence that converge again is not divergence anymore
255 -----------------------------------------------------
255 -----------------------------------------------------
256
256
257 $ newcase converged_divergence
257 $ newcase converged_divergence
258 $ hg debugobsolete `getid A_0` `getid A_1`
258 $ hg debugobsolete `getid A_0` `getid A_1`
259 obsoleted 1 changesets
259 obsoleted 1 changesets
260 $ hg debugobsolete `getid A_0` `getid A_2`
260 $ hg debugobsolete `getid A_0` `getid A_2`
261 2 new content-divergent changesets
261 2 new content-divergent changesets
262 $ mkcommit A_3
262 $ mkcommit A_3
263 created new head
263 created new head
264 $ hg debugobsolete `getid A_1` `getid A_3`
264 $ hg debugobsolete `getid A_1` `getid A_3`
265 obsoleted 1 changesets
265 obsoleted 1 changesets
266 $ hg debugobsolete `getid A_2` `getid A_3`
266 $ hg debugobsolete `getid A_2` `getid A_3`
267 obsoleted 1 changesets
267 obsoleted 1 changesets
268 $ hg log -G --hidden
268 $ hg log -G --hidden
269 @ 4:01f36c5a8fda A_3
269 @ 4:01f36c5a8fda A_3
270 |
270 |
271 | x 3:392fd25390da A_2 [rewritten as 4:01f36c5a8fda]
271 | x 3:392fd25390da A_2 [rewritten as 4:01f36c5a8fda]
272 |/
272 |/
273 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
273 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
274 |/
274 |/
275 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
275 | x 1:007dc284c1f8 A_0 [rewritten as 2:82623d38b9ba; rewritten as 3:392fd25390da]
276 |/
276 |/
277 o 0:d20a80d4def3 base
277 o 0:d20a80d4def3 base
278
278
279 $ hg debugsuccessorssets --hidden 'all()'
279 $ hg debugsuccessorssets --hidden 'all()'
280 d20a80d4def3
280 d20a80d4def3
281 d20a80d4def3
281 d20a80d4def3
282 007dc284c1f8
282 007dc284c1f8
283 01f36c5a8fda
283 01f36c5a8fda
284 82623d38b9ba
284 82623d38b9ba
285 01f36c5a8fda
285 01f36c5a8fda
286 392fd25390da
286 392fd25390da
287 01f36c5a8fda
287 01f36c5a8fda
288 01f36c5a8fda
288 01f36c5a8fda
289 01f36c5a8fda
289 01f36c5a8fda
290 $ hg log -r 'contentdivergent()'
290 $ hg log -r 'contentdivergent()'
291 $ hg debugsuccessorssets 'all()' --closest
291 $ hg debugsuccessorssets 'all()' --closest
292 d20a80d4def3
292 d20a80d4def3
293 d20a80d4def3
293 d20a80d4def3
294 01f36c5a8fda
294 01f36c5a8fda
295 01f36c5a8fda
295 01f36c5a8fda
296 $ hg debugsuccessorssets 'all()' --closest --hidden
296 $ hg debugsuccessorssets 'all()' --closest --hidden
297 d20a80d4def3
297 d20a80d4def3
298 d20a80d4def3
298 d20a80d4def3
299 007dc284c1f8
299 007dc284c1f8
300 82623d38b9ba
300 82623d38b9ba
301 392fd25390da
301 392fd25390da
302 82623d38b9ba
302 82623d38b9ba
303 82623d38b9ba
303 82623d38b9ba
304 392fd25390da
304 392fd25390da
305 392fd25390da
305 392fd25390da
306 01f36c5a8fda
306 01f36c5a8fda
307 01f36c5a8fda
307 01f36c5a8fda
308 $ cd ..
308 $ cd ..
309
309
310 split is not divergences
310 split is not divergences
311 -----------------------------
311 -----------------------------
312
312
313 $ newcase split
313 $ newcase split
314 $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
314 $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
315 obsoleted 1 changesets
315 obsoleted 1 changesets
316 $ hg log -G --hidden
316 $ hg log -G --hidden
317 o 3:392fd25390da A_2
317 o 3:392fd25390da A_2
318 |
318 |
319 | o 2:82623d38b9ba A_1
319 | o 2:82623d38b9ba A_1
320 |/
320 |/
321 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
321 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
322 |/
322 |/
323 @ 0:d20a80d4def3 base
323 @ 0:d20a80d4def3 base
324
324
325 $ hg debugsuccessorssets --hidden 'all()'
325 $ hg debugsuccessorssets --hidden 'all()'
326 d20a80d4def3
326 d20a80d4def3
327 d20a80d4def3
327 d20a80d4def3
328 007dc284c1f8
328 007dc284c1f8
329 82623d38b9ba 392fd25390da
329 82623d38b9ba 392fd25390da
330 82623d38b9ba
330 82623d38b9ba
331 82623d38b9ba
331 82623d38b9ba
332 392fd25390da
332 392fd25390da
333 392fd25390da
333 392fd25390da
334 $ hg log -r 'contentdivergent()'
334 $ hg log -r 'contentdivergent()'
335 $ hg debugsuccessorssets 'all()' --closest
335 $ hg debugsuccessorssets 'all()' --closest
336 d20a80d4def3
336 d20a80d4def3
337 d20a80d4def3
337 d20a80d4def3
338 82623d38b9ba
338 82623d38b9ba
339 82623d38b9ba
339 82623d38b9ba
340 392fd25390da
340 392fd25390da
341 392fd25390da
341 392fd25390da
342 $ hg debugsuccessorssets 'all()' --closest --hidden
342 $ hg debugsuccessorssets 'all()' --closest --hidden
343 d20a80d4def3
343 d20a80d4def3
344 d20a80d4def3
344 d20a80d4def3
345 007dc284c1f8
345 007dc284c1f8
346 82623d38b9ba 392fd25390da
346 82623d38b9ba 392fd25390da
347 82623d38b9ba
347 82623d38b9ba
348 82623d38b9ba
348 82623d38b9ba
349 392fd25390da
349 392fd25390da
350 392fd25390da
350 392fd25390da
351
351
352 Even when subsequent rewriting happen
352 Even when subsequent rewriting happen
353
353
354 $ mkcommit A_3
354 $ mkcommit A_3
355 created new head
355 created new head
356 $ hg debugobsolete `getid A_1` `getid A_3`
356 $ hg debugobsolete `getid A_1` `getid A_3`
357 obsoleted 1 changesets
357 obsoleted 1 changesets
358 $ hg up 0
358 $ hg up 0
359 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
359 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
360 $ mkcommit A_4
360 $ mkcommit A_4
361 created new head
361 created new head
362 $ hg debugobsolete `getid A_2` `getid A_4`
362 $ hg debugobsolete `getid A_2` `getid A_4`
363 obsoleted 1 changesets
363 obsoleted 1 changesets
364 $ hg up 0
364 $ hg up 0
365 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
365 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
366 $ mkcommit A_5
366 $ mkcommit A_5
367 created new head
367 created new head
368 $ hg debugobsolete `getid A_4` `getid A_5`
368 $ hg debugobsolete `getid A_4` `getid A_5`
369 obsoleted 1 changesets
369 obsoleted 1 changesets
370 $ hg log -G --hidden
370 $ hg log -G --hidden
371 @ 6:e442cfc57690 A_5
371 @ 6:e442cfc57690 A_5
372 |
372 |
373 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
373 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
374 |/
374 |/
375 | o 4:01f36c5a8fda A_3
375 | o 4:01f36c5a8fda A_3
376 |/
376 |/
377 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
377 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
378 |/
378 |/
379 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
379 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
380 |/
380 |/
381 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
381 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
382 |/
382 |/
383 o 0:d20a80d4def3 base
383 o 0:d20a80d4def3 base
384
384
385 $ hg debugsuccessorssets --hidden 'all()'
385 $ hg debugsuccessorssets --hidden 'all()'
386 d20a80d4def3
386 d20a80d4def3
387 d20a80d4def3
387 d20a80d4def3
388 007dc284c1f8
388 007dc284c1f8
389 01f36c5a8fda e442cfc57690
389 01f36c5a8fda e442cfc57690
390 82623d38b9ba
390 82623d38b9ba
391 01f36c5a8fda
391 01f36c5a8fda
392 392fd25390da
392 392fd25390da
393 e442cfc57690
393 e442cfc57690
394 01f36c5a8fda
394 01f36c5a8fda
395 01f36c5a8fda
395 01f36c5a8fda
396 6a411f0d7a0a
396 6a411f0d7a0a
397 e442cfc57690
397 e442cfc57690
398 e442cfc57690
398 e442cfc57690
399 e442cfc57690
399 e442cfc57690
400 $ hg debugsuccessorssets 'all()' --closest
400 $ hg debugsuccessorssets 'all()' --closest
401 d20a80d4def3
401 d20a80d4def3
402 d20a80d4def3
402 d20a80d4def3
403 01f36c5a8fda
403 01f36c5a8fda
404 01f36c5a8fda
404 01f36c5a8fda
405 e442cfc57690
405 e442cfc57690
406 e442cfc57690
406 e442cfc57690
407 $ hg debugsuccessorssets 'all()' --closest --hidden
407 $ hg debugsuccessorssets 'all()' --closest --hidden
408 d20a80d4def3
408 d20a80d4def3
409 d20a80d4def3
409 d20a80d4def3
410 007dc284c1f8
410 007dc284c1f8
411 82623d38b9ba 392fd25390da
411 82623d38b9ba 392fd25390da
412 82623d38b9ba
412 82623d38b9ba
413 82623d38b9ba
413 82623d38b9ba
414 392fd25390da
414 392fd25390da
415 392fd25390da
415 392fd25390da
416 01f36c5a8fda
416 01f36c5a8fda
417 01f36c5a8fda
417 01f36c5a8fda
418 6a411f0d7a0a
418 6a411f0d7a0a
419 e442cfc57690
419 e442cfc57690
420 e442cfc57690
420 e442cfc57690
421 e442cfc57690
421 e442cfc57690
422 $ hg log -r 'contentdivergent()'
422 $ hg log -r 'contentdivergent()'
423
423
424 Check more complex obsolescence graft (with divergence)
424 Check more complex obsolescence graft (with divergence)
425
425
426 $ mkcommit B_0; hg up 0
426 $ mkcommit B_0; hg up 0
427 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
427 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
428 $ hg debugobsolete `getid B_0` `getid A_2`
428 $ hg debugobsolete `getid B_0` `getid A_2`
429 obsoleted 1 changesets
429 obsoleted 1 changesets
430 $ mkcommit A_7; hg up 0
430 $ mkcommit A_7; hg up 0
431 created new head
431 created new head
432 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
432 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
433 $ mkcommit A_8; hg up 0
433 $ mkcommit A_8; hg up 0
434 created new head
434 created new head
435 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
435 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
436 $ hg debugobsolete `getid A_5` `getid A_7` `getid A_8`
436 $ hg debugobsolete `getid A_5` `getid A_7` `getid A_8`
437 obsoleted 1 changesets
437 obsoleted 1 changesets
438 $ mkcommit A_9; hg up 0
438 $ mkcommit A_9; hg up 0
439 created new head
439 created new head
440 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
440 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
441 $ hg debugobsolete `getid A_5` `getid A_9`
441 $ hg debugobsolete `getid A_5` `getid A_9`
442 4 new content-divergent changesets
442 4 new content-divergent changesets
443 $ hg log -G --hidden
443 $ hg log -G --hidden
444 * 10:bed64f5d2f5a A_9
444 * 10:bed64f5d2f5a A_9
445 |
445 |
446 | * 9:14608b260df8 A_8
446 | * 9:14608b260df8 A_8
447 |/
447 |/
448 | * 8:7ae126973a96 A_7
448 | * 8:7ae126973a96 A_7
449 |/
449 |/
450 | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da]
450 | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da]
451 | |
451 | |
452 | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8]
452 | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8]
453 |/
453 |/
454 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
454 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
455 |/
455 |/
456 | * 4:01f36c5a8fda A_3
456 | * 4:01f36c5a8fda A_3
457 |/
457 |/
458 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
458 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
459 |/
459 |/
460 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
460 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
461 |/
461 |/
462 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
462 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
463 |/
463 |/
464 @ 0:d20a80d4def3 base
464 @ 0:d20a80d4def3 base
465
465
466 $ hg debugsuccessorssets --hidden 'all()'
466 $ hg debugsuccessorssets --hidden 'all()'
467 d20a80d4def3
467 d20a80d4def3
468 d20a80d4def3
468 d20a80d4def3
469 007dc284c1f8
469 007dc284c1f8
470 01f36c5a8fda bed64f5d2f5a
470 01f36c5a8fda bed64f5d2f5a
471 01f36c5a8fda 7ae126973a96 14608b260df8
471 01f36c5a8fda 7ae126973a96 14608b260df8
472 82623d38b9ba
472 82623d38b9ba
473 01f36c5a8fda
473 01f36c5a8fda
474 392fd25390da
474 392fd25390da
475 bed64f5d2f5a
475 bed64f5d2f5a
476 7ae126973a96 14608b260df8
476 7ae126973a96 14608b260df8
477 01f36c5a8fda
477 01f36c5a8fda
478 01f36c5a8fda
478 01f36c5a8fda
479 6a411f0d7a0a
479 6a411f0d7a0a
480 bed64f5d2f5a
480 bed64f5d2f5a
481 7ae126973a96 14608b260df8
481 7ae126973a96 14608b260df8
482 e442cfc57690
482 e442cfc57690
483 bed64f5d2f5a
483 bed64f5d2f5a
484 7ae126973a96 14608b260df8
484 7ae126973a96 14608b260df8
485 3750ebee865d
485 3750ebee865d
486 bed64f5d2f5a
486 bed64f5d2f5a
487 7ae126973a96 14608b260df8
487 7ae126973a96 14608b260df8
488 7ae126973a96
488 7ae126973a96
489 7ae126973a96
489 7ae126973a96
490 14608b260df8
490 14608b260df8
491 14608b260df8
491 14608b260df8
492 bed64f5d2f5a
492 bed64f5d2f5a
493 bed64f5d2f5a
493 bed64f5d2f5a
494 $ hg debugsuccessorssets 'all()' --closest
494 $ hg debugsuccessorssets 'all()' --closest
495 d20a80d4def3
495 d20a80d4def3
496 d20a80d4def3
496 d20a80d4def3
497 01f36c5a8fda
497 01f36c5a8fda
498 01f36c5a8fda
498 01f36c5a8fda
499 7ae126973a96
499 7ae126973a96
500 7ae126973a96
500 7ae126973a96
501 14608b260df8
501 14608b260df8
502 14608b260df8
502 14608b260df8
503 bed64f5d2f5a
503 bed64f5d2f5a
504 bed64f5d2f5a
504 bed64f5d2f5a
505 $ hg debugsuccessorssets 'all()' --closest --hidden
505 $ hg debugsuccessorssets 'all()' --closest --hidden
506 d20a80d4def3
506 d20a80d4def3
507 d20a80d4def3
507 d20a80d4def3
508 007dc284c1f8
508 007dc284c1f8
509 82623d38b9ba 392fd25390da
509 82623d38b9ba 392fd25390da
510 82623d38b9ba
510 82623d38b9ba
511 82623d38b9ba
511 82623d38b9ba
512 392fd25390da
512 392fd25390da
513 392fd25390da
513 392fd25390da
514 01f36c5a8fda
514 01f36c5a8fda
515 01f36c5a8fda
515 01f36c5a8fda
516 6a411f0d7a0a
516 6a411f0d7a0a
517 e442cfc57690
517 e442cfc57690
518 e442cfc57690
518 e442cfc57690
519 e442cfc57690
519 e442cfc57690
520 3750ebee865d
520 3750ebee865d
521 392fd25390da
521 392fd25390da
522 7ae126973a96
522 7ae126973a96
523 7ae126973a96
523 7ae126973a96
524 14608b260df8
524 14608b260df8
525 14608b260df8
525 14608b260df8
526 bed64f5d2f5a
526 bed64f5d2f5a
527 bed64f5d2f5a
527 bed64f5d2f5a
528 $ hg log -r 'contentdivergent()'
528 $ hg log -r 'contentdivergent()'
529 4:01f36c5a8fda A_3
529 4:01f36c5a8fda A_3
530 8:7ae126973a96 A_7
530 8:7ae126973a96 A_7
531 9:14608b260df8 A_8
531 9:14608b260df8 A_8
532 10:bed64f5d2f5a A_9
532 10:bed64f5d2f5a A_9
533
533
534 $ hg log -r bed64f5d2f5a -T '{whyunstable}\n' | sort
534 $ hg log -r bed64f5d2f5a -T '{whyunstable}\n' | sort
535 content-divergent: 4:01f36c5a8fda (draft) 8:7ae126973a96 (draft) 9:14608b260df8 (draft) predecessor 007dc284c1f8
535 content-divergent: 4:01f36c5a8fda (draft) 8:7ae126973a96 (draft) 9:14608b260df8 (draft) predecessor 007dc284c1f8
536 content-divergent: 8:7ae126973a96 (draft) 9:14608b260df8 (draft) predecessor e442cfc57690
536 content-divergent: 8:7ae126973a96 (draft) 9:14608b260df8 (draft) predecessor e442cfc57690
537 $ hg log -r bed64f5d2f5a -T whyunstableshort | sort
537 $ hg log -r bed64f5d2f5a -T whyunstableshort | sort
538 content-divergent: 4:01f36c5a8fda (draft) 8:7ae126973a96 (draft) 9:14608b260df8 (draft) predecessor 007d
538 content-divergent: 4:01f36c5a8fda (draft) 8:7ae126973a96 (draft) 9:14608b260df8 (draft) predecessor 007d
539 content-divergent: 8:7ae126973a96 (draft) 9:14608b260df8 (draft) predecessor e442
539 content-divergent: 8:7ae126973a96 (draft) 9:14608b260df8 (draft) predecessor e442
540 $ hg log -r bed64f5d2f5a -T whyunstableshorter | sort
540 $ hg log -r bed64f5d2f5a -T whyunstableshorter | sort
541 content-divergent: 01f3 (draft) 7ae1 (draft) 1460 (draft) predecessor 007d
541 content-divergent: 01f3 (draft) 7ae1 (draft) 1460 (draft) predecessor 007d
542 content-divergent: 7ae1 (draft) 1460 (draft) predecessor e442
542 content-divergent: 7ae1 (draft) 1460 (draft) predecessor e442
543
543
544 fix the divergence
544 fix the divergence
545
545
546 $ mkcommit A_A; hg up 0
546 $ mkcommit A_A; hg up 0
547 created new head
547 created new head
548 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
548 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
549 $ hg debugobsolete `getid A_9` `getid A_A`
549 $ hg debugobsolete `getid A_9` `getid A_A`
550 obsoleted 1 changesets
550 obsoleted 1 changesets
551 $ hg debugobsolete `getid A_7` `getid A_A`
551 $ hg debugobsolete `getid A_7` `getid A_A`
552 obsoleted 1 changesets
552 obsoleted 1 changesets
553 $ hg debugobsolete `getid A_8` `getid A_A`
553 $ hg debugobsolete `getid A_8` `getid A_A`
554 obsoleted 1 changesets
554 obsoleted 1 changesets
555 $ hg log -G --hidden
555 $ hg log -G --hidden
556 o 11:a139f71be9da A_A
556 o 11:a139f71be9da A_A
557 |
557 |
558 | x 10:bed64f5d2f5a A_9 [rewritten as 11:a139f71be9da]
558 | x 10:bed64f5d2f5a A_9 [rewritten as 11:a139f71be9da]
559 |/
559 |/
560 | x 9:14608b260df8 A_8 [rewritten as 11:a139f71be9da]
560 | x 9:14608b260df8 A_8 [rewritten as 11:a139f71be9da]
561 |/
561 |/
562 | x 8:7ae126973a96 A_7 [rewritten as 11:a139f71be9da]
562 | x 8:7ae126973a96 A_7 [rewritten as 11:a139f71be9da]
563 |/
563 |/
564 | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da]
564 | x 7:3750ebee865d B_0 [rewritten as 3:392fd25390da]
565 | |
565 | |
566 | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8]
566 | x 6:e442cfc57690 A_5 [rewritten as 10:bed64f5d2f5a; split as 8:7ae126973a96, 9:14608b260df8]
567 |/
567 |/
568 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
568 | x 5:6a411f0d7a0a A_4 [rewritten as 6:e442cfc57690]
569 |/
569 |/
570 | o 4:01f36c5a8fda A_3
570 | o 4:01f36c5a8fda A_3
571 |/
571 |/
572 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
572 | x 3:392fd25390da A_2 [rewritten as 5:6a411f0d7a0a]
573 |/
573 |/
574 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
574 | x 2:82623d38b9ba A_1 [rewritten as 4:01f36c5a8fda]
575 |/
575 |/
576 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
576 | x 1:007dc284c1f8 A_0 [split as 2:82623d38b9ba, 3:392fd25390da]
577 |/
577 |/
578 @ 0:d20a80d4def3 base
578 @ 0:d20a80d4def3 base
579
579
580 $ hg debugsuccessorssets --hidden 'all()'
580 $ hg debugsuccessorssets --hidden 'all()'
581 d20a80d4def3
581 d20a80d4def3
582 d20a80d4def3
582 d20a80d4def3
583 007dc284c1f8
583 007dc284c1f8
584 01f36c5a8fda a139f71be9da
584 01f36c5a8fda a139f71be9da
585 82623d38b9ba
585 82623d38b9ba
586 01f36c5a8fda
586 01f36c5a8fda
587 392fd25390da
587 392fd25390da
588 a139f71be9da
588 a139f71be9da
589 01f36c5a8fda
589 01f36c5a8fda
590 01f36c5a8fda
590 01f36c5a8fda
591 6a411f0d7a0a
591 6a411f0d7a0a
592 a139f71be9da
592 a139f71be9da
593 e442cfc57690
593 e442cfc57690
594 a139f71be9da
594 a139f71be9da
595 3750ebee865d
595 3750ebee865d
596 a139f71be9da
596 a139f71be9da
597 7ae126973a96
597 7ae126973a96
598 a139f71be9da
598 a139f71be9da
599 14608b260df8
599 14608b260df8
600 a139f71be9da
600 a139f71be9da
601 bed64f5d2f5a
601 bed64f5d2f5a
602 a139f71be9da
602 a139f71be9da
603 a139f71be9da
603 a139f71be9da
604 a139f71be9da
604 a139f71be9da
605 $ hg debugsuccessorssets 'all()' --closest
605 $ hg debugsuccessorssets 'all()' --closest
606 d20a80d4def3
606 d20a80d4def3
607 d20a80d4def3
607 d20a80d4def3
608 01f36c5a8fda
608 01f36c5a8fda
609 01f36c5a8fda
609 01f36c5a8fda
610 a139f71be9da
610 a139f71be9da
611 a139f71be9da
611 a139f71be9da
612 $ hg debugsuccessorssets 'all()' --closest --hidden
612 $ hg debugsuccessorssets 'all()' --closest --hidden
613 d20a80d4def3
613 d20a80d4def3
614 d20a80d4def3
614 d20a80d4def3
615 007dc284c1f8
615 007dc284c1f8
616 82623d38b9ba 392fd25390da
616 82623d38b9ba 392fd25390da
617 82623d38b9ba
617 82623d38b9ba
618 82623d38b9ba
618 82623d38b9ba
619 392fd25390da
619 392fd25390da
620 392fd25390da
620 392fd25390da
621 01f36c5a8fda
621 01f36c5a8fda
622 01f36c5a8fda
622 01f36c5a8fda
623 6a411f0d7a0a
623 6a411f0d7a0a
624 e442cfc57690
624 e442cfc57690
625 e442cfc57690
625 e442cfc57690
626 e442cfc57690
626 e442cfc57690
627 3750ebee865d
627 3750ebee865d
628 392fd25390da
628 392fd25390da
629 7ae126973a96
629 7ae126973a96
630 a139f71be9da
630 a139f71be9da
631 14608b260df8
631 14608b260df8
632 a139f71be9da
632 a139f71be9da
633 bed64f5d2f5a
633 bed64f5d2f5a
634 a139f71be9da
634 a139f71be9da
635 a139f71be9da
635 a139f71be9da
636 a139f71be9da
636 a139f71be9da
637 $ hg log -r 'contentdivergent()'
637 $ hg log -r 'contentdivergent()'
638
638
639 #if serve
639 #if serve
640
640
641 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid --config web.view=all \
641 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid --config web.view=all \
642 > -A access.log -E errors.log
642 > -A access.log -E errors.log
643 $ cat hg.pid >> $DAEMON_PIDS
643 $ cat hg.pid >> $DAEMON_PIDS
644
644
645 check an obsolete changeset that was rewritten and also split
645 check an obsolete changeset that was rewritten and also split
646
646
647 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=paper' | egrep 'rewritten|split'
647 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=paper' | egrep 'rewritten|split'
648 <td>rewritten as <a href="/rev/bed64f5d2f5a?style=paper">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span><br>
648 <td>rewritten as <a href="/rev/bed64f5d2f5a?style=paper">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span><br>
649 split as <a href="/rev/7ae126973a96?style=paper">7ae126973a96</a> <a href="/rev/14608b260df8?style=paper">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
649 split as <a href="/rev/7ae126973a96?style=paper">7ae126973a96</a> <a href="/rev/14608b260df8?style=paper">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
650 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=coal' | egrep 'rewritten|split'
650 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=coal' | egrep 'rewritten|split'
651 <td>rewritten as <a href="/rev/bed64f5d2f5a?style=coal">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span><br>
651 <td>rewritten as <a href="/rev/bed64f5d2f5a?style=coal">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span><br>
652 split as <a href="/rev/7ae126973a96?style=coal">7ae126973a96</a> <a href="/rev/14608b260df8?style=coal">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
652 split as <a href="/rev/7ae126973a96?style=coal">7ae126973a96</a> <a href="/rev/14608b260df8?style=coal">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
653 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=gitweb' | egrep 'rewritten|split'
653 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=gitweb' | egrep 'rewritten|split'
654 <td>rewritten as <a class="list" href="/rev/bed64f5d2f5a?style=gitweb">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
654 <td>rewritten as <a class="list" href="/rev/bed64f5d2f5a?style=gitweb">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
655 <td>split as <a class="list" href="/rev/7ae126973a96?style=gitweb">7ae126973a96</a> <a class="list" href="/rev/14608b260df8?style=gitweb">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
655 <td>split as <a class="list" href="/rev/7ae126973a96?style=gitweb">7ae126973a96</a> <a class="list" href="/rev/14608b260df8?style=gitweb">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
656 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=monoblue' | egrep 'rewritten|split'
656 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=monoblue' | egrep 'rewritten|split'
657 <dd>rewritten as <a href="/rev/bed64f5d2f5a?style=monoblue">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></dd>
657 <dd>rewritten as <a href="/rev/bed64f5d2f5a?style=monoblue">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></dd>
658 <dd>split as <a href="/rev/7ae126973a96?style=monoblue">7ae126973a96</a> <a href="/rev/14608b260df8?style=monoblue">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></dd>
658 <dd>split as <a href="/rev/7ae126973a96?style=monoblue">7ae126973a96</a> <a href="/rev/14608b260df8?style=monoblue">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></dd>
659 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=spartan' | egrep 'rewritten|split'
659 $ get-with-headers.py localhost:$HGPORT 'rev/e442cfc57690?style=spartan' | egrep 'rewritten|split'
660 <td class="obsolete">rewritten as <a href="/rev/bed64f5d2f5a?style=spartan">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
660 <td class="obsolete">rewritten as <a href="/rev/bed64f5d2f5a?style=spartan">bed64f5d2f5a</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
661 <td class="obsolete">split as <a href="/rev/7ae126973a96?style=spartan">7ae126973a96</a> <a href="/rev/14608b260df8?style=spartan">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
661 <td class="obsolete">split as <a href="/rev/7ae126973a96?style=spartan">7ae126973a96</a> <a href="/rev/14608b260df8?style=spartan">14608b260df8</a> by &#116;&#101;&#115;&#116; <span class="age">Thu, 01 Jan 1970 00:00:00 +0000</span></td>
662
662
663 $ killdaemons.py
663 $ killdaemons.py
664
664
665 #endif
665 #endif
666
666
667 $ cd ..
667 $ cd ..
668
668
669
669
670 Subset does not diverge
670 Subset does not diverge
671 ------------------------------
671 ------------------------------
672
672
673 Do not report divergent successors-set if it is a subset of another
673 Do not report divergent successors-set if it is a subset of another
674 successors-set. (report [A,B] not [A] + [A,B])
674 successors-set. (report [A,B] not [A] + [A,B])
675
675
676 $ newcase subset
676 $ newcase subset
677 $ hg debugobsolete `getid A_0` `getid A_2`
677 $ hg debugobsolete `getid A_0` `getid A_2`
678 obsoleted 1 changesets
678 obsoleted 1 changesets
679 $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
679 $ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
680 $ hg debugsuccessorssets --hidden 'desc('A_0')'
680 $ hg debugsuccessorssets --hidden 'desc('A_0')'
681 007dc284c1f8
681 007dc284c1f8
682 82623d38b9ba 392fd25390da
682 82623d38b9ba 392fd25390da
683 $ hg debugsuccessorssets 'desc('A_0')' --closest
683 $ hg debugsuccessorssets 'desc('A_0')' --closest
684 $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden
684 $ hg debugsuccessorssets 'desc('A_0')' --closest --hidden
685 007dc284c1f8
685 007dc284c1f8
686 82623d38b9ba 392fd25390da
686 82623d38b9ba 392fd25390da
687
687
688 $ cd ..
688 $ cd ..
689
689
690 Use scmutil.cleanupnodes API to create divergence
690 Use scmutil.cleanupnodes API to create divergence
691
691
692 $ hg init cleanupnodes
692 $ hg init cleanupnodes
693 $ cd cleanupnodes
693 $ cd cleanupnodes
694 $ hg debugdrawdag <<'EOS'
694 $ hg debugdrawdag <<'EOS'
695 > B1 B3 B4
695 > B1 B3 B4
696 > | \|
696 > | \|
697 > A Z
697 > A Z
698 > EOS
698 > EOS
699
699
700 $ hg update -q B1
700 $ hg update -q B1
701 $ echo 3 >> B
701 $ echo 3 >> B
702 $ hg commit --amend -m B2
702 $ hg commit --amend -m B2
703 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
703 $ cat > $TESTTMP/scmutilcleanup.py <<EOF
704 > from mercurial import registrar, scmutil
704 > from mercurial import registrar, scmutil
705 > cmdtable = {}
705 > cmdtable = {}
706 > command = registrar.command(cmdtable)
706 > command = registrar.command(cmdtable)
707 > @command('cleanup')
707 > @command(b'cleanup')
708 > def cleanup(ui, repo):
708 > def cleanup(ui, repo):
709 > def node(expr):
709 > def node(expr):
710 > unfi = repo.unfiltered()
710 > unfi = repo.unfiltered()
711 > rev = unfi.revs(expr).first()
711 > rev = unfi.revs(expr).first()
712 > return unfi.changelog.node(rev)
712 > return unfi.changelog.node(rev)
713 > with repo.wlock(), repo.lock(), repo.transaction('delayedstrip'):
713 > with repo.wlock(), repo.lock(), repo.transaction(b'delayedstrip'):
714 > mapping = {node('desc(B1)'): [node('desc(B3)')],
714 > mapping = {node(b'desc(B1)'): [node(b'desc(B3)')],
715 > node('desc(B3)'): [node('desc(B4)')]}
715 > node(b'desc(B3)'): [node(b'desc(B4)')]}
716 > scmutil.cleanupnodes(repo, mapping, 'test')
716 > scmutil.cleanupnodes(repo, mapping, b'test')
717 > EOF
717 > EOF
718
718
719 $ rm .hg/localtags
719 $ rm .hg/localtags
720 $ hg cleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
720 $ hg cleanup --config extensions.t=$TESTTMP/scmutilcleanup.py
721 2 new content-divergent changesets
721 2 new content-divergent changesets
722 $ hg log -G -T '{rev}:{node|short} {desc} {instabilities}' -r 'sort(all(), topo)'
722 $ hg log -G -T '{rev}:{node|short} {desc} {instabilities}' -r 'sort(all(), topo)'
723 @ 5:1a2a9b5b0030 B2 content-divergent
723 @ 5:1a2a9b5b0030 B2 content-divergent
724 |
724 |
725 | * 4:70d5a63ca112 B4 content-divergent
725 | * 4:70d5a63ca112 B4 content-divergent
726 | |
726 | |
727 | o 1:48b9aae0607f Z
727 | o 1:48b9aae0607f Z
728 |
728 |
729 o 0:426bada5c675 A
729 o 0:426bada5c675 A
730
730
731 $ hg debugobsolete
731 $ hg debugobsolete
732 a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
732 a178212c3433c4e77b573f6011e29affb8aefa33 1a2a9b5b0030632400aa78e00388c20f99d3ec44 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 'test'}
733 a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'test', 'user': 'test'}
733 a178212c3433c4e77b573f6011e29affb8aefa33 ad6478fb94ecec98b86daae98722865d494ac561 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '13', 'operation': 'test', 'user': 'test'}
734 ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'test', 'user': 'test'}
734 ad6478fb94ecec98b86daae98722865d494ac561 70d5a63ca112acb3764bc1d7320ca90ea688d671 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'operation': 'test', 'user': 'test'}
735
735
736 $ hg debugwhyunstable 1a2a9b5b0030
736 $ hg debugwhyunstable 1a2a9b5b0030
737 content-divergent: 70d5a63ca112acb3764bc1d7320ca90ea688d671 (draft) predecessor a178212c3433c4e77b573f6011e29affb8aefa33
737 content-divergent: 70d5a63ca112acb3764bc1d7320ca90ea688d671 (draft) predecessor a178212c3433c4e77b573f6011e29affb8aefa33
738
738
739 $ hg log -r 1a2a9b5b0030 -T '{whyunstable}\n'
739 $ hg log -r 1a2a9b5b0030 -T '{whyunstable}\n'
740 content-divergent: 4:70d5a63ca112 (draft) predecessor a178212c3433
740 content-divergent: 4:70d5a63ca112 (draft) predecessor a178212c3433
741 $ hg log -r 1a2a9b5b0030 -T whyunstableshort
741 $ hg log -r 1a2a9b5b0030 -T whyunstableshort
742 content-divergent: 4:70d5a63ca112 (draft) predecessor a178
742 content-divergent: 4:70d5a63ca112 (draft) predecessor a178
743 $ hg log -r 1a2a9b5b0030 -T whyunstableshorter
743 $ hg log -r 1a2a9b5b0030 -T whyunstableshorter
744 content-divergent: 70d5 (draft) predecessor a178
744 content-divergent: 70d5 (draft) predecessor a178
745
745
746 #if serve
746 #if serve
747
747
748 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
748 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
749 $ cat hg.pid >> $DAEMON_PIDS
749 $ cat hg.pid >> $DAEMON_PIDS
750
750
751 check explanation for a content-divergent changeset
751 check explanation for a content-divergent changeset
752
752
753 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=paper' | grep divergent:
753 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=paper' | grep divergent:
754 <td>content-divergent: <a href="/rev/70d5a63ca112?style=paper">70d5a63ca112</a> (draft) predecessor <a href="/rev/a178212c3433?style=paper">a178212c3433</a></td>
754 <td>content-divergent: <a href="/rev/70d5a63ca112?style=paper">70d5a63ca112</a> (draft) predecessor <a href="/rev/a178212c3433?style=paper">a178212c3433</a></td>
755 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=coal' | grep divergent:
755 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=coal' | grep divergent:
756 <td>content-divergent: <a href="/rev/70d5a63ca112?style=coal">70d5a63ca112</a> (draft) predecessor <a href="/rev/a178212c3433?style=coal">a178212c3433</a></td>
756 <td>content-divergent: <a href="/rev/70d5a63ca112?style=coal">70d5a63ca112</a> (draft) predecessor <a href="/rev/a178212c3433?style=coal">a178212c3433</a></td>
757 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=gitweb' | grep divergent:
757 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=gitweb' | grep divergent:
758 <td>content-divergent: <a class="list" href="/rev/70d5a63ca112?style=gitweb">70d5a63ca112</a> (draft) predecessor <a class="list" href="/rev/a178212c3433?style=gitweb">a178212c3433</a></td>
758 <td>content-divergent: <a class="list" href="/rev/70d5a63ca112?style=gitweb">70d5a63ca112</a> (draft) predecessor <a class="list" href="/rev/a178212c3433?style=gitweb">a178212c3433</a></td>
759 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=monoblue' | grep divergent:
759 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=monoblue' | grep divergent:
760 <dd>content-divergent: <a href="/rev/70d5a63ca112?style=monoblue">70d5a63ca112</a> (draft) predecessor <a href="/rev/a178212c3433?style=monoblue">a178212c3433</a></dd>
760 <dd>content-divergent: <a href="/rev/70d5a63ca112?style=monoblue">70d5a63ca112</a> (draft) predecessor <a href="/rev/a178212c3433?style=monoblue">a178212c3433</a></dd>
761 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=spartan' | grep divergent:
761 $ get-with-headers.py localhost:$HGPORT 'rev/1a2a9b5b0030?style=spartan' | grep divergent:
762 <td class="unstable">content-divergent: <a href="/rev/70d5a63ca112?style=spartan">70d5a63ca112</a> (draft) predecessor <a href="/rev/a178212c3433?style=spartan">a178212c3433</a></td>
762 <td class="unstable">content-divergent: <a href="/rev/70d5a63ca112?style=spartan">70d5a63ca112</a> (draft) predecessor <a href="/rev/a178212c3433?style=spartan">a178212c3433</a></td>
763
763
764 $ killdaemons.py
764 $ killdaemons.py
765
765
766 #endif
766 #endif
General Comments 0
You need to be logged in to leave comments. Login now