fsr-de / myHPI

Django/Wagtail page serving myhpi.de
https://myhpi.de
11 stars 11 forks source link

Diff for revision is sometimes broken #565

Open jeriox opened 2 weeks ago

jeriox commented 2 weeks ago

When looking at the diff between two revisions, it is sometimes hard to see something because the markdown source is rendered without line breaks. Also sometimes this seems to display erroneous results (@lukasrad02 has more context)

lukasrad02 commented 1 week ago

I have taken a look at some pages with (seemingly) wrong diffs once again. From as far as I can tell, the diffs are not wrong, but unnecessarily complex. This might be caused by the missing line breaks, so the diff algorithm might detect replacements that did not actually happen.

Steps to reproduce:

  1. Create a page with the following filler text:

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam felis massa, fringilla suscipit scelerisque et, fermentum sit amet eros. Maecenas pellentesque, nulla eu eleifend porttitor, lectus metus ullamcorper elit, in ullamcorper arcu odio ac felis. Vestibulum congue cursus dui vel hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Ut viverra hendrerit ipsum sed mattis.

    Aenean eleifend tellus urna, id semper mauris sodales in. In gravida at metus pulvinar semper. Nullam finibus nisi consequat, condimentum odio sed, vehicula ante. Vivamus molestie risus sed libero tincidunt sodales. Phasellus semper, turpis id tempor rhoncus, justo mauris facilisis erat, non pretium est tellus vel mauris. Phasellus finibus massa quis elit sagittis eleifend. Aliquam eget efficitur neque. Quisque nec odio sed ante egestas facilisis quis ac arcu. Phasellus malesuada placerat ex a elementum. Donec porta risus sit amet orci pharetra aliquam.

  2. Save the page as a draft
  3. Copy one sentence from the second paragraph and use it to replace a sentence from the first one. A result could look like

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam felis massa, fringilla suscipit scelerisque et, fermentum sit amet eros. Maecenas pellentesque, nulla eu eleifend porttitor, lectus metus ullamcorper elit, in ullamcorper arcu odio ac felis. Phasellus finibus massa quis elit sagittis eleifend. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Ut viverra hendrerit ipsum sed mattis.

    Aenean eleifend tellus urna, id semper mauris sodales in. In gravida at metus pulvinar semper. Nullam finibus nisi consequat, condimentum odio sed, vehicula ante. Vivamus molestie risus sed libero tincidunt sodales. Phasellus semper, turpis id tempor rhoncus, justo mauris facilisis erat, non pretium est tellus vel mauris. Phasellus finibus massa quis elit sagittis eleifend. Aliquam eget efficitur neque. Quisque nec odio sed ante egestas facilisis quis ac arcu. Phasellus malesuada placerat ex a elementum. Donec porta risus sit amet orci pharetra aliquam.

  4. Save another draft of the page
  5. View the diff between the two pages

The diff generated by Wagtail looks like this

image

I would expect a diff like the following one (generated with VS Code), showing way less changes

image