Skip to content

Parse error happened when using UnifiedDiffReader.parseUnifiedDiff #85

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
HuGanghui opened this issue Jun 18, 2020 · 1 comment
Closed

Comments

@HuGanghui
Copy link
Contributor

HuGanghui commented Jun 18, 2020

Describe the bug
Parse error happened when using UnifiedDiffReader.parseUnifiedDiff to parse a Hg Diff Patch file.

To Reproduce
Steps to reproduce the behavior:

  1. Example data
  2. simple programm snippet
  3. See error

here is the Hg Diff Patch file:

# HG changeset patch
# User Anton Shestakov <av6@dwimlabs.net>
# Date 1591442367 -28800
# Node ID a4438263b228dd3e2983d59095c6180b1411f0e8
# Parent  83e41b73d115e3717943c2e5a83d36d05670384c
tests: skip pyflakes for mercurial/thirdparty/

The current version of pyflakes (2.2.0) correctly detects one issue:

  mercurial/thirdparty/selectors2.py:335:40 '...'.format(...) has unused arguments at position(s): 1

But we're not interested in fixing lint errors in third-party code, so we need
to exclude at least selectors2.py. And in the discussion for this patch it was
decided to just skip the entire thirdparty directory.

Differential Revision: https://phab.mercurial-scm.org/D8619

diff -r 83e41b73d115 -r a4438263b228 tests/test-check-pyflakes.t
--- a/tests/test-check-pyflakes.t	Tue Jun 09 17:13:26 2020 -0400
+++ b/tests/test-check-pyflakes.t	Sat Jun 06 19:19:27 2020 +0800
@@ -16,9 +16,7 @@
   $ testrepohg locate 'set:**.py or grep("^#!.*python")' \
   > -X hgext/fsmonitor/pywatchman \
   > -X mercurial/pycompat.py -X contrib/python-zstandard \
-  > -X mercurial/thirdparty/cbor \
-  > -X mercurial/thirdparty/concurrent \
-  > -X mercurial/thirdparty/zope \
+  > -X mercurial/thirdparty \
   > 2>/dev/null \
   > | xargs $PYTHON -m pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
   contrib/perf.py:*:* undefined name 'xrange' (glob) (?)

when I run the following codes error happened:

public void testHgDiffPatch() throws Exception {
        final UnifiedDiff diff = getUnifiedDiff("PatchFileFromDiffTools/HGDiffPatch.txt");
        assertEquals(1, diff.getFiles().size());

        final UnifiedDiffFile file1 = diff.getFiles().get(0);
        assertEquals("diff -r 83e41b73d115 -r a4438263b228 tests/test-check-pyflakes.t",
                file1.getDiffCommand());
        assertEquals("tests/test-check-pyflakes.t", file1.getFromFile());
        assertEquals("tests/test-check-pyflakes.t", file1.getToFile());
        assertEquals(1, file1.getPatch().getDeltas().size());

        assertNull(diff.getTail());
    }

error information is here:

org.junit.ComparisonFailure: 
Expected :tests/test-check-pyflakes.t
Actual   :tests/test-check-pyflakes.t	Tue Jun 09 17:13:26 2020 -0400

Expected behavior
A clear and concise description of what you expected to happen.

I hope to parse this file correctly.

System

  • Java version 1.8
  • Version [e.g. 22]
    Maven plugin
<groupId>io.github.java-diff-utils</groupId>
<artifactId>java-diff-utils</artifactId>
<version>4.5</version>
@wumpz
Copy link
Collaborator

wumpz commented Jun 21, 2020

The problem was the timestamp format, that was not recognized by java-diff-utils. Now I recognized, that this timestamp separated from the filename using a single tab. That is now included. I deployed the 4.8-SNAPSHOT minutes ago.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants