Very long lines in diff make TortoiseHg hang

Issue #2355 duplicate
Alexandr Altinchurin
created an issue

I have a repo with a XML file which contains 46K symbols arranged in one line without any CR/LFs. When user makes a change in this file and then tries to commit the changes with TortioseHg, thg hangs. Thg version 2.6.1 x64. If user commits the change using hg commit in console, TortoiseHg hangs when user clicks on this revision.

Probably there is some problem with displaying very long lines in diffs.

One may reproduce the problem using the attached file. Create a repo, add the file to it, and try to change and commit.

Comments (5)

  1. Alexandr Altinchurin reporter

    I've tried this on 4 machines:

    1. Desktop Core i5, Win 7, Thg 2.6.1 x64
    2. Desktop Core i5, Win 7, some earlier version of Thg x64
    3. Desktop Core i5, Win 7, Thg 2.6.2 x64
    4. Netbook Intel Atom, Win XP, Thg 2.6.2 x86

    The error were reproduced on all four computers, thg hangs invariably. It's not a problem with rendering speed, I've just waited for 10 minutes on Core i5 / Radeon HD5700 system, but Thg is still not responding.

    Steps to reproduce:

    1. Create an empty repo
    2. Copy the attached HRVScale.norminfo file to the repo and add it
    3. Make a commit
    4. Edit the file HRVScale.norminfo by adding a single space character to the very beginning of the file
    5. Try to commit using thg
  2. Alexandr Altinchurin reporter

    I've done some research and discovered that line length itself does not matter. For example, thg will normally handle 75 Kb single line containing ASCII characters only. The problem is in utf-8 files which combine english and national (in my case russian) characters.

    You may reproduce the error using the attached file "t.txt". It contains 1 letter "R" and 670 russian letters in utf-8 encoding, but it is enough to make thg hang. Add this file, make a commit, edit the file and try to commit again.

  3. Log in to comment