These binaries now work when testing them on CI, so I believe the
issues have now been resolved. This was probably due to the rustc
version upgrades.
Closes#563
StringIgnoringNewline caused crashes in code that assumed that two
equal values would hav the same string length.
This reverts 86612798ad. A better
approach would be to normalise line endings before diffing, but
additionally print whether files have/lack trailing newlines.
Fixes#755
`git-difftool` has strictly less information than `git-diff`.
`git-difftool` therefore produces worse results, and we shouldn't
recommend it.
`git-difftool` does not have file rename information, and sometimes
makes difftastic claim that file permissions have changed (depending
on the permissions of the temporary directory used).
Instead, recommend `git-diff` with an external diff configured, and
update `git-mergetool` instructions to emulate `git-diff` as much as
possible (respecting $MERGED).
Also link to the upstream git bug on segfaults with external diff
tools.
Thanks to @poliorcetics and @gthb for researching this bug and
discussing possible solutions.
Closes#734Fixes#620
Input cleaning should happen before we diff the content, not during
display. Previously display would crash due to line numbers
referencing the line that had been stripped.
Fixes#713Fixes#739Fixes#742
We rely on being able to split lines and rejoin them to obtain the
original string. `str::lines()` in the Rust stdlib does not have this
property.
This was causing crashes in word-diffing on textual diffing, where
code paths differed on the number of lines they thought a string had.
This was broken in 8b842387a1.
Fixes#688.