diff mercurial/logcmdutil.py @ 41630:035cae1d197f

patch: let caller pass in root-filtering matcher (API) The --root option to `hg diff` does two things: * Shows paths relative to the given root * Filters paths by the given root, including copy sources The root argument is passed through down to patch.diff(). I feel like we can make patch.diff() more generic by not passing down the root argument, but instead pass: * A function for taking a repo-relative path and printing it. I want to reuse this for showing cwd-relative paths later. This is the actual motivation for this patch. * A matcher that's already been filtered by the root argument * A second matcher that filters the copy sources This is one step towards that. Differential Revision: https://phab.mercurial-scm.org/D5892
author Martin von Zweigbergk <martinvonz@google.com>
date Wed, 06 Feb 2019 17:46:20 -0800
parents d683aca738cd
children 74f53d3bd685
line wrap: on
line diff
--- a/mercurial/logcmdutil.py	Wed Feb 06 17:27:43 2019 -0800
+++ b/mercurial/logcmdutil.py	Wed Feb 06 17:46:20 2019 -0800
@@ -74,6 +74,9 @@
                 ui.warn(_('warning: %s not inside relative root %s\n') % (
                     match.uipath(matchroot), uirelroot))
 
+        relrootmatch = scmutil.match(ctx2, pats=[relroot], default='path')
+        match = matchmod.intersectmatchers(match, relrootmatch)
+
     if stat:
         diffopts = diffopts.copy(context=0, noprefix=False)
         width = 80