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

The way Fisheye handles newlines when parsing command line outputs is completely wrong

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • High
    • 2.4.3
    • 2.3.7, 2.4.1
    • Indexing

    Description

      There are 3 different standards for newline characters. The these are:

      • Line Feed (\n) - which is the standard for unix-like systems
      • Carrier Return followed by a Line Feed \r\n - which is the standard for windows systems
      • Carrier Return \r - which is the standard for Mac OS 9 and earlier (which is not supported for mercurial, git or fe/cru)

      BufferedReader counts \n, \r and \r\n all as newline characters. GIT and Mercurial treat only \n and \r\n as newlines. Any output from GIT or Mercurial which we parse should use the GIT and mercurial standard, not the JDK implementation. Otherwise we can potentially cause errors within indexing

      An example of a repository with such problem is here:
      http://bitbucket.org/despiegk/pylabs-core

      executing:

      hg --config extensions.felog=/path/to/hgfelog.py --config ui.verbose=false felog 4fd1d042ab2b155c8aee58bc3ed919fb4c7928cd -p -m
      

      Ideally, mercurial should fix its binary file detection. We can potentially provide a fix within the hgfelog.py mercurial extension and do detection via file extensions. Another option is to modify the implementation of BufferedReader.readLine() via a subclass or by using BufferedReader.read instead.

      Attachments

        Activity

          People

            jhinch jhinch (Atlassian)
            Anonymous Anonymous
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: