178 if self.filter is False: |
178 if self.filter is False: |
179 succs = self.repo.obsstore.successors.get(changenode, ()) |
179 succs = self.repo.obsstore.successors.get(changenode, ()) |
180 succs = sorted(succs) |
180 succs = sorted(succs) |
181 |
181 |
182 for successor in succs: |
182 for successor in succs: |
183 _debugobshistorydisplaymarker(self.ui, markerfm, successor, |
183 _debugobshistorydisplaymarker(self.ui, markerfm, |
|
184 successor[1], [successor], |
184 ctx.node(), self.repo, |
185 ctx.node(), self.repo, |
185 self._includediff) |
186 self._includediff) |
186 |
187 |
187 else: |
188 else: |
188 r = obsutil.successorsandmarkers(self.repo, ctx) |
189 r = obsutil.successorsandmarkers(self.repo, ctx) |
456 succs = successors.get(ctxnode, ()) |
457 succs = successors.get(ctxnode, ()) |
457 |
458 |
458 markerfm = fm.nested(b"markers") |
459 markerfm = fm.nested(b"markers") |
459 for successor in sorted(succs): |
460 for successor in sorted(succs): |
460 includediff = opts and opts.get("patch") |
461 includediff = opts and opts.get("patch") |
461 _debugobshistorydisplaymarker(ui, markerfm, successor, ctxnode, unfi, includediff) |
462 _debugobshistorydisplaymarker(ui, markerfm, successor[1], [successor], ctxnode, unfi, includediff) |
462 markerfm.end() |
463 markerfm.end() |
463 fm.plain(b'\n') |
464 fm.plain(b'\n') |
464 |
465 |
465 precs = precursors.get(ctxnode, ()) |
466 precs = precursors.get(ctxnode, ()) |
466 for p in sorted(precs): |
467 for p in sorted(precs): |
499 fm.data(node=nodemod.hex(nodewithoutctx)) |
500 fm.data(node=nodemod.hex(nodewithoutctx)) |
500 fm.plain(nodemod.short(nodewithoutctx), |
501 fm.plain(nodemod.short(nodewithoutctx), |
501 label=b"evolve.node evolve.missing_change_ctx") |
502 label=b"evolve.node evolve.missing_change_ctx") |
502 fm.plain(b'\n') |
503 fm.plain(b'\n') |
503 |
504 |
504 def _debugobshistorydisplaymarker(ui, fm, marker, node, repo, includediff=False): |
505 def _debugobshistorydisplaymarker(ui, fm, succnodes, markers, node, repo, includediff=False): |
505 succnodes = marker[1] |
|
506 |
|
507 fm.startitem() |
506 fm.startitem() |
508 |
507 |
509 verb = _successorsetverb(succnodes, [marker])[b"verb"] |
508 verb = _successorsetverb(succnodes, markers)[b"verb"] |
510 |
509 |
511 fm.data(verb=verb) |
510 fm.data(verb=verb) |
512 |
511 |
513 effects = _markerseffects([marker]) |
512 effects = _markerseffects(markers) |
514 if effects: |
513 if effects: |
515 fmteffects = fm.formatlist(effects, b'effect', sep=b', ') |
514 fmteffects = fm.formatlist(effects, b'effect', sep=b', ') |
516 fm.data(effects=fmteffects) |
515 fm.data(effects=fmteffects) |
517 |
516 |
518 if len(succnodes) > 0: |
517 if len(succnodes) > 0: |
519 hexnodes = (nodemod.hex(succnode) for succnode in sorted(succnodes)) |
518 hexnodes = (nodemod.hex(succnode) for succnode in sorted(succnodes)) |
520 nodes = fm.formatlist(hexnodes, b'succnode') |
519 nodes = fm.formatlist(hexnodes, b'succnode') |
521 fm.data(succnodes=nodes) |
520 fm.data(succnodes=nodes) |
522 |
521 |
523 # Operations |
522 # Operations |
524 operations = obsutil.markersoperations([marker]) |
523 operations = obsutil.markersoperations(markers) |
525 if operations: |
524 if operations: |
526 fm.data(operations=fm.formatlist(operations, name=b'operation', sep=b', ')) |
525 fm.data(operations=fm.formatlist(operations, name=b'operation', sep=b', ')) |
527 |
526 |
528 # Users |
527 # Users |
529 users = obsutil.markersusers([marker]) |
528 users = obsutil.markersusers(markers) |
530 fm.data(users=fm.formatlist(users, name=b'user', sep=b', ')) |
529 fm.data(users=fm.formatlist(users, name=b'user', sep=b', ')) |
531 |
530 |
532 # Dates |
531 # Dates |
533 dates = obsutil.markersdates([marker]) |
532 dates = obsutil.markersdates(markers) |
534 fm.data(dates=fm.formatlist(dates, name=b'date')) |
533 fm.data(dates=fm.formatlist(dates, name=b'date')) |
535 |
534 |
536 # Notes |
535 # Notes |
537 notes = _markersnotes([marker]) |
536 notes = _markersnotes(markers) |
538 if notes: |
537 if notes: |
539 fm.data(notes=fm.formatlist(notes, name=b'note', sep=b'\n')) |
538 fm.data(notes=fm.formatlist(notes, name=b'note', sep=b'\n')) |
540 |
539 |
541 # Patch display |
540 # Patch display |
542 if includediff is True: |
541 if includediff is True: |
543 _patchavailable = patchavailable(node, repo, marker[1]) |
542 _patchavailable = patchavailable(node, repo, succnodes) |
544 |
543 |
545 if _patchavailable[0] is True: |
544 if _patchavailable[0] is True: |
546 succ = _patchavailable[1] |
545 succ = _patchavailable[1] |
547 |
546 |
548 basectx = repo[node] |
547 basectx = repo[node] |