You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
diff --git a/tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order.html b/tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order-new.html
similarity index 100%
rename from tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order.html
rename to tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order-new.html
gets excluded when I run filterdiff -p 1 -i tests/wpt/web-platform-tests.
diff --git a/tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order.html b/tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order-new.html
similarity index 100%
rename from tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order.html
rename to tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order-new.html
diff --git a/tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.scale.large.html b/tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.scale.large.html
deleted file mode 100644
index 926530d1f7e6..000000000000
--- a/tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.scale.large.html+++ /dev/null@@ -1,33 +0,0 @@-<!DOCTYPE html>-<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->-<title>Canvas test: 2d.transformation.scale.large</title>-<script src="/resources/testharness.js"></script>-<script src="/resources/testharnessreport.js"></script>-<script src="/common/canvas-tests.js"></script>-<link rel="stylesheet" href="/common/canvas-tests.css">-<body class="show_output">--<h1>2d.transformation.scale.large</h1>-<p class="desc">scale() with large scale factors works</p>--<p class="notes">Not really that large at all, but it hits the limits in Firefox.-<p class="output">Actual output:</p>-<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>-<p class="output expectedtext">Expected output:<p><img src="/images/green-100x50.png" class="output expected" id="expected" alt="">-<ul id="d"></ul>-<script>-var t = async_test("scale() with large scale factors works");-_addTest(function(canvas, ctx) {--ctx.fillStyle = '#f00';-ctx.fillRect(0, 0, 100, 50);--ctx.scale(1e5, 1e5);-ctx.fillStyle = '#0f0';-ctx.fillRect(0, 0, 1, 1);-_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");---});-</script>-
The problem is that the diff contains a change to a file (tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order.html) that matches the pattern provided to -i (tests/wpt/web-platform-tests), but the change is not included in the filtered diff.
as I understand -i just includes files in diff that match if you just have the delete file , what you except ?
Anyway you fail to provide the complete example , I still have to deduce what you mean and what example you use .
I posted the complete example in #22 (comment). When I filter that diff using filterdiff -p 1 -i tests/wpt/web-platform-tests it only shows the file that is removed, and does not include the file that is renamed.
I think you expect something that filterdiff does not do , what you are asking to just show the diffs where file name have "tests/wpt/web-platform-tests"
So you need your git diff not detect similarity and show the rename files , but the real patch
man filterdiff - extract or exclude diffs from a diff file
if file doesn't not have the diff but have rename from / to , what you expect from filterdiff ?
I think "diff" is generally used to describe more than just the - and + parts of the diff file. I would consider the renaming information an important part of the diff.
diff --git a/lexers/ansi_c.lua b/lexers/c.lua
similarity index 100%
rename from lexers/ansi_c.lua
rename to lexers/c.lua
diff --git a/lexers/dmd.lua b/lexers/d.lua
similarity index 100%
rename from lexers/dmd.lua
rename to lexers/d.lua
Activity
jdm commentedon Feb 7, 2018
I'm pretty sure the cause is https://github.com/twaugh/patchutils/blob/master/src/filterdiff.c#L1070-L1073.
sergiomb2 commentedon Feb 7, 2018
can you post the diff file or a kind of sample please ?
jdm commentedon Feb 7, 2018
More specifically, with this diff:
jdm commentedon Feb 7, 2018
filterdiff collects the first five lines, so there are two
diffheaders, then throws them all out because pat_exclude and verbose are both false at https://github.com/twaugh/patchutils/blob/master/src/filterdiff.c#L1075-L1083.sergiomb2 commentedon Feb 7, 2018
filterdiff [[-i PATTERN] | [--include=PATTERN]] [[-I FILE] | [--include-from-file=FILE]] [[-p n]
what you want with -p -i ? is a syntax error
filterdiff: option requires an argument -- 'p'
cat yourfile | filterdiffworksjdm commentedon Feb 7, 2018
Sorry, I meant
-p 1.jdm commentedon Feb 7, 2018
If I use
-vit is a workaround for this particular diff, but it incorrectly includes moves that do not match the pattern.sergiomb2 commentedon Feb 7, 2018
I don't understood the problem , is the -i ?
jdm commentedon Feb 7, 2018
The problem is that the diff contains a change to a file (
tests/wpt/web-platform-tests/2dcontext/transformations/2d.transformation.order.html) that matches the pattern provided to-i(tests/wpt/web-platform-tests), but the change is not included in the filtered diff.sergiomb2 commentedon Feb 8, 2018
+++ /dev/null
as I understand -i just includes files in diff that match if you just have the delete file , what you except ?
Anyway you fail to provide the complete example , I still have to deduce what you mean and what example you use .
jdm commentedon Mar 18, 2018
I posted the complete example in #22 (comment). When I filter that diff using
filterdiff -p 1 -i tests/wpt/web-platform-testsit only shows the file that is removed, and does not include the file that is renamed.sergiomb2 commentedon Mar 21, 2018
I think you expect something that filterdiff does not do , what you are asking to just show the diffs where file name have "tests/wpt/web-platform-tests"
So you need your git diff not detect similarity and show the rename files , but the real patch
jdm commentedon Mar 21, 2018
Why is that not the expected behaviour of filterdiff?
sergiomb2 commentedon Mar 21, 2018
you need your git diff not detect similarity and don't try detect renamed files and show the complete patch
jdm commentedon Mar 21, 2018
My question is why filterdiff should not be modified to accommodate this diff?
sergiomb2 commentedon Mar 21, 2018
man filterdiff - extract or exclude diffs from a diff file
if file doesn't not have the diff but have rename from / to , what you expect from filterdiff ?
jdm commentedon Mar 21, 2018
I think "diff" is generally used to describe more than just the
-and+parts of the diff file. I would consider the renaming information an important part of the diff.carlfriedrich commentedon Feb 25, 2022
I just encountered the same problem. @jdm Did you manage to find a workaround for this?
jdm commentedon Feb 26, 2022
I no longer remember any of the context for this problem.
sergiomb2 commentedon Feb 7, 2024
I see, we may try not exclude removes and files permissions as mention in #59
mcepl commentedon Dec 28, 2024
Another test case: when running
$ curl -L -s https://github.com/orbitalquark/scintillua/commit/c6c98d68ecc0.patch \ |filterdiff --include="lexers/*.lua" -p1filterdiffignores these lines:sarmong commentedon Jan 28, 2025
If anyone is running
git diffand then tries to filter withfilterdiff, you can use git's builtinpathspecinstead, something like thishttps://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec
twaugh commentedon Aug 27, 2025
Please try the PR I just linked.