Download raw diff from Differential generates an incorrect diff if the diff includes binary file additions/deletions, generated by git diff --binary. If this is the intentional behavior, it would be better to document in the documentation for clarity. I understand arc works great and I like to use it, but some people prefer to upload the patch via Web UI for some reason.
Reproducing steps
- Create a git repo
- Add a binary file (e.g., on OS X, copy /usr/share/tokenizer/ja/char.bin to the repo) via git add
- git diff --cached --binary | pbcopy
- Create Diff via Differential Web UI
- Paste from clipboard in Raw Diff
- Create a review
- Click "Download Raw Diff"
And what we get is something like this:
diff --git a/data.bin b/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001 literal 0 Hc$@<O00001
Expected result is the exactly same result git diff --cached --binary generated something like
diff --git a/data.bin b/data.bin new file mode 100644 index 0000000000000000000000000000000000000000..6cda9b61410c8c1dfd93e9d62921c5fc8a330a2e GIT binary patch literal 262496 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 RYYZ*+`Ms<5b-rto-yhuL)Aj%W literal 0 HcmV?d00001