mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +01:00
Fix exception on diff parse on FreeBSD
FreeBSD 9.2 comes with diff tool version 2.8.7 which behaves a bit different from how it is expected to. Namely for diff between two binary files it says: Files A and B are differ This was leading to an exception when browsing revisions with changes in binary files. Tweaked parse patterns in order to fix this issue. Now both older and newer diff tools are supported. See: <https://github.com/facebook/arcanist/pull/139> Reviewed by: epriestley
This commit is contained in:
parent
a247e21093
commit
2c2c5663cb
3 changed files with 6 additions and 2 deletions
|
@ -220,7 +220,7 @@ final class ArcanistDiffParser {
|
||||||
'(?P<type>rcsdiff -u) (?P<oldnew>.*)',
|
'(?P<type>rcsdiff -u) (?P<oldnew>.*)',
|
||||||
// This is a unified diff, probably from "diff -u" or synthetic diffing.
|
// This is a unified diff, probably from "diff -u" or synthetic diffing.
|
||||||
'(?P<type>---) (?P<old>.+)\s+\d{4}-\d{2}-\d{2}.*',
|
'(?P<type>---) (?P<old>.+)\s+\d{4}-\d{2}-\d{2}.*',
|
||||||
'(?P<binary>Binary) files '.
|
'(?P<binary>Binary files|Files) '.
|
||||||
'(?P<old>.+)\s+\d{4}-\d{2}-\d{2} and '.
|
'(?P<old>.+)\s+\d{4}-\d{2}-\d{2} and '.
|
||||||
'(?P<new>.+)\s+\d{4}-\d{2}-\d{2} differ.*',
|
'(?P<new>.+)\s+\d{4}-\d{2}-\d{2} differ.*',
|
||||||
// This is a normal Mercurial text change, probably from "hg diff". It
|
// This is a normal Mercurial text change, probably from "hg diff". It
|
||||||
|
@ -705,7 +705,7 @@ final class ArcanistDiffParser {
|
||||||
// We can get this in git, or in SVN when a file exists in the repository
|
// We can get this in git, or in SVN when a file exists in the repository
|
||||||
// WITHOUT a binary mime-type and is changed and given a binary mime-type.
|
// WITHOUT a binary mime-type and is changed and given a binary mime-type.
|
||||||
$is_binary_diff = preg_match(
|
$is_binary_diff = preg_match(
|
||||||
'/^Binary files .* and .* differ$/',
|
'/^(Binary files|Files) .* and .* differ$/',
|
||||||
rtrim($line));
|
rtrim($line));
|
||||||
if ($is_binary_diff) {
|
if ($is_binary_diff) {
|
||||||
$this->nextNonemptyLine(); // Binary files x and y differ
|
$this->nextNonemptyLine(); // Binary files x and y differ
|
||||||
|
|
|
@ -217,6 +217,7 @@ EOTEXT
|
||||||
$change->getNewProperties());
|
$change->getNewProperties());
|
||||||
break;
|
break;
|
||||||
case 'svn-binary-diff.svndiff':
|
case 'svn-binary-diff.svndiff':
|
||||||
|
case 'svn-binary-diff-freebsd.svndiff':
|
||||||
$this->assertEqual(1, count($changes));
|
$this->assertEqual(1, count($changes));
|
||||||
$change = reset($changes);
|
$change = reset($changes);
|
||||||
$this->assertEqual(
|
$this->assertEqual(
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
Index: html/images/sprite/autogen/8f2jjp.png
|
||||||
|
===================================================================
|
||||||
|
Files trunk/lib/tests/tracking/synthetic-point-motion.blend 9999-99-99 and trunk/lib/tests/tracking/synthetic-point-motion.blend 9999-99-99 differ
|
Loading…
Reference in a new issue