
Hi everyone,
Not to contribute to the solution of the problem itself, but to help with mitigation of annoying symptoms.
The diff program has an option to --ignore-trailing-space (-Z for short) that will totally ignore changes of `\n` to `\n\r` and vice versa. And so you will see only 'actual' changes.
Another generally useful option is --ignore-space-change (-b for short) that will ignore indentation changes. Another option that you may use is --ignore-all-space.
The good thing, git diff also understand these options.
Having less clutter when viewing diff is nice, but sometimes it prevents clean merges/rebases. For such cases you can pass a strategy to the merge command. For example,
git merge -Xignore-trailing-space pr/xyz
git merge -Xignore-all-space pr/xyz
This allows you to merge a branch without the need to fight the line ending changes. Note that in some cases it doesn't work as good as you would expect it to work, but from my experience these options help a lot.
P. S. more information can be found in man diff, man git-diff and man git-merge.
Cheers,
boris@d12frosted.io
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, May 13, 2019 7:21 PM, Joachim Durchholz
Actually this is much, much worse than annoying: All attempts to checksum or diff files modified in this way will have to take line-end differences into account, which will be a neverending source of bugs, and as every unexpected behaviour may make people miss a security issue, it's also a source of exploits (likely to become more interesting as Haskell gets into high-value niches).
Just my 2 cents from the sideline :-)
Am 13.05.19 um 16:29 schrieb Dan Burton:
Two thoughts:
1. this is annoying and I wish it didn't do this 2. one workaround would be to always fetch v0 of the patch, and maintain/generate custom versions of the patches equivalent to each revision as needed.
-- Dan Burton On Sun, May 12, 2019 at 7:22 PM Niklas Hambüchen
wrote: I noticed that if you use Hackage's online Cabal file editor, it changes all your \\n line endings to \\r\\n.
This breaks all patches written against upstream .cabal files.
For example, if I write a patch against `cachix-0.2.0` git repo's .cabal file, I can no longer apply it to whatever revisions of it Hackage has, even if there's no real conflict.
Here's a reproduction (I changed only 1 line in the editor, and it shows the whole file as changed):
diff -u <(curl https://hackage.haskell.org/package/AesonBson-0.2.0/revision/0.cabal) <(curl https://hackage.haskell.org/package/AesonBson-0.2.0/revision/1.cabal)
I found this especially problematic for nixpkgs, where patching packages is a common practice. _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.