mercurial/logcmdutil.py
changeset 46497 4a012e531066
parent 46042 1bf2b44c4007
child 46498 3caa3698335e
equal deleted inserted replaced
46496:d57e607d9e33 46497:4a012e531066
    25     error,
    25     error,
    26     formatter,
    26     formatter,
    27     graphmod,
    27     graphmod,
    28     match as matchmod,
    28     match as matchmod,
    29     mdiff,
    29     mdiff,
       
    30     merge,
    30     patch,
    31     patch,
    31     pathutil,
    32     pathutil,
    32     pycompat,
    33     pycompat,
    33     revset,
    34     revset,
    34     revsetlang,
    35     revsetlang,
    69         if limit <= 0:
    70         if limit <= 0:
    70             raise error.Abort(_(b'limit must be positive'))
    71             raise error.Abort(_(b'limit must be positive'))
    71     else:
    72     else:
    72         limit = None
    73         limit = None
    73     return limit
    74     return limit
       
    75 
       
    76 
       
    77 def diff_parent(ctx):
       
    78     """get the context object to use as parent when diffing
       
    79 
       
    80 
       
    81     If diff.merge is enabled, an overlayworkingctx of the auto-merged parents will be returned.
       
    82     """
       
    83     repo = ctx.repo()
       
    84     if repo.ui.configbool(b"diff", b"merge") and ctx.p2().node() != nullid:
       
    85         # avoid cycle context -> subrepo -> cmdutil -> logcmdutil
       
    86         from . import context
       
    87 
       
    88         wctx = context.overlayworkingctx(repo)
       
    89         wctx.setbase(ctx.p1())
       
    90         with repo.ui.configoverride(
       
    91             {
       
    92                 (
       
    93                     b"ui",
       
    94                     b"forcemerge",
       
    95                 ): b"internal:merge3-lie-about-conflicts",
       
    96             },
       
    97             b"merge-diff",
       
    98         ):
       
    99             repo.ui.pushbuffer()
       
   100             merge.merge(ctx.p2(), wc=wctx)
       
   101             repo.ui.popbuffer()
       
   102         return wctx
       
   103     else:
       
   104         return ctx.p1()
    74 
   105 
    75 
   106 
    76 def diffordiffstat(
   107 def diffordiffstat(
    77     ui,
   108     ui,
    78     repo,
   109     repo,