Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-3681

Subversion: truncated line in diff causes blame calculation errors

XMLWordPrintable

      When we get the diff using SVNClient.diff(...), the diff for lines with non-ascii characters appears to be truncated by the svnkit implementation. For instance, when getting the diffs for revision 68 in the checkstyle SVN repository:

      svn diff -r 67:68 file:///Users/mheemskerk/work/repo/svn/checkstyle/trunk/checkstyle/src/tests/com/puppycrawl/tools/checkstyle@68 | less

      the svnkit implementation that we use from FishEye returns:

      +/**
      + * Tests for anonymous inner types
      + * @author Lars K�+ **/
      

      but the svn commandline returns:

      +/**
      + * Tests for anonymous inner types
      + * @author Lars K<FC>hne
      + **/
      

      The truncation unfortunately also removes the EOL from the line in question, and the result is that in FishEye misses the end of the diff section. This results in wrong diff hunks for the file in question (and potentially next files in the same diff).

      The relevant bit of source: https://extranet.atlassian.com/crucible/browse/FE-hg/src/java/com/cenqua/fisheye/svn/diff/SvnDiffParser.java?r=ee09ae822322549c4496d15e8e73d32eace572fe#to277

              Unassigned Unassigned
              mheemskerk Michael Heemskerk (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: