diff --git a/scripts/repository/binary_safe_diff.sh b/scripts/repository/binary_safe_diff.sh new file mode 100755 index 0000000000..1473e80442 --- /dev/null +++ b/scripts/repository/binary_safe_diff.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +diff "$@" +if [ "$?" = "2" ]; then + exit 1 +fi diff --git a/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php b/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php index 39d81d9635..d091792a0c 100644 --- a/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php +++ b/src/applications/diffusion/query/rawdiff/DiffusionSvnRawDiffQuery.php @@ -1,42 +1,44 @@ getRequest(); $repository = $drequest->getRepository(); $commit = $drequest->getCommit(); + $root = phutil_get_library_root('phabricator'); $future = $repository->getRemoteCommandFuture( - 'diff --diff-cmd diff -x -U%d -c %d %s%s@', + 'diff --diff-cmd %s -x -U%d -c %d %s%s@', + $root.'/../scripts/repository/binary_safe_diff.sh', $this->getLinesOfContext(), $commit, $repository->getRemoteURI(), $drequest->getPath()); if ($this->getTimeout()) { $future->setTimeout($this->getTimeout()); } list($raw_diff) = $future->resolvex(); return $raw_diff; } }