mercurial/logcmdutil.py
changeset 41620 74f53d3bd685
parent 41619 035cae1d197f
child 41630 3d094bfaf885
equal deleted inserted replaced
41619:035cae1d197f 41620:74f53d3bd685
    62     ctx2 = repo[node2]
    62     ctx2 = repo[node2]
    63     if root:
    63     if root:
    64         relroot = pathutil.canonpath(repo.root, repo.getcwd(), root)
    64         relroot = pathutil.canonpath(repo.root, repo.getcwd(), root)
    65     else:
    65     else:
    66         relroot = ''
    66         relroot = ''
       
    67     copysourcematch = None
    67     if relroot != '':
    68     if relroot != '':
    68         # XXX relative roots currently don't work if the root is within a
    69         # XXX relative roots currently don't work if the root is within a
    69         # subrepo
    70         # subrepo
    70         uirelroot = match.uipath(relroot)
    71         uirelroot = match.uipath(relroot)
    71         relroot += '/'
    72         relroot += '/'
    74                 ui.warn(_('warning: %s not inside relative root %s\n') % (
    75                 ui.warn(_('warning: %s not inside relative root %s\n') % (
    75                     match.uipath(matchroot), uirelroot))
    76                     match.uipath(matchroot), uirelroot))
    76 
    77 
    77         relrootmatch = scmutil.match(ctx2, pats=[relroot], default='path')
    78         relrootmatch = scmutil.match(ctx2, pats=[relroot], default='path')
    78         match = matchmod.intersectmatchers(match, relrootmatch)
    79         match = matchmod.intersectmatchers(match, relrootmatch)
       
    80         copysourcematch = relrootmatch
    79 
    81 
    80     if stat:
    82     if stat:
    81         diffopts = diffopts.copy(context=0, noprefix=False)
    83         diffopts = diffopts.copy(context=0, noprefix=False)
    82         width = 80
    84         width = 80
    83         if not ui.plain():
    85         if not ui.plain():
    84             width = ui.termwidth() - graphwidth
    86             width = ui.termwidth() - graphwidth
    85 
    87 
    86     chunks = ctx2.diff(ctx1, match, changes, opts=diffopts, prefix=prefix,
    88     chunks = ctx2.diff(ctx1, match, changes, opts=diffopts, prefix=prefix,
    87                        relroot=relroot, hunksfilterfn=hunksfilterfn)
    89                        relroot=relroot, copysourcematch=copysourcematch,
       
    90                        hunksfilterfn=hunksfilterfn)
    88 
    91 
    89     if fp is not None or ui.canwritewithoutlabels():
    92     if fp is not None or ui.canwritewithoutlabels():
    90         out = fp or ui
    93         out = fp or ui
    91         if stat:
    94         if stat:
    92             chunks = [patch.diffstat(util.iterlines(chunks), width=width)]
    95             chunks = [patch.diffstat(util.iterlines(chunks), width=width)]