diff --git a/src/parser/ArcanistDiffParser.php b/src/parser/ArcanistDiffParser.php index b6e8cbcd..45d2520b 100644 --- a/src/parser/ArcanistDiffParser.php +++ b/src/parser/ArcanistDiffParser.php @@ -207,6 +207,8 @@ final class ArcanistDiffParser { $patterns = array( // This is a normal SVN text change, probably from "svn diff". '(?PIndex): (?P.+)', + // This is an SVN text change, probably from "svnlook diff". + '(?PModified|Added|Deleted): (?P.+)', // This is an SVN property change, probably from "svn diff". '(?PProperty changes on): (?P.+)', // This is a git commit message, probably from "git show". @@ -285,6 +287,9 @@ final class ArcanistDiffParser { switch ($match['type']) { case 'Index': + case 'Modified': + case 'Added': + case 'Deleted': $this->parseIndexHunk($change); break; case 'Property changes on': diff --git a/src/parser/__tests__/ArcanistDiffParserTestCase.php b/src/parser/__tests__/ArcanistDiffParserTestCase.php index 32010f67..a4becd86 100644 --- a/src/parser/__tests__/ArcanistDiffParserTestCase.php +++ b/src/parser/__tests__/ArcanistDiffParserTestCase.php @@ -570,6 +570,11 @@ EOTEXT ArcanistDiffChangeType::TYPE_CHANGE, $change->getType()); break; + case 'svnlook-basics.svndiff': + case 'svnlook-add.svndiff': + case 'svnlook-delete.svndiff': + $this->assertEqual(1, count($changes)); + break; default: throw new Exception("No test block for diff file {$diff_file}."); break; diff --git a/src/parser/__tests__/diff/svnlook-add.svndiff b/src/parser/__tests__/diff/svnlook-add.svndiff new file mode 100644 index 00000000..fbfb1f4f --- /dev/null +++ b/src/parser/__tests__/diff/svnlook-add.svndiff @@ -0,0 +1,7 @@ +Added: OTHER +=================================================================== +--- OTHER (rev 0) ++++ OTHER 2013-12-18 21:00:43 UTC (txn 18-y) +@@ -0,0 +1 @@ ++other + diff --git a/src/parser/__tests__/diff/svnlook-basics.svndiff b/src/parser/__tests__/diff/svnlook-basics.svndiff new file mode 100644 index 00000000..e7c45c6d --- /dev/null +++ b/src/parser/__tests__/diff/svnlook-basics.svndiff @@ -0,0 +1,10 @@ +Modified: README +=================================================================== +--- README 2013-12-18 20:56:12 UTC (rev 17) ++++ README 2013-12-18 20:56:47 UTC (txn 17-x) +@@ -17,3 +17,4 @@ + j + j + j ++j + diff --git a/src/parser/__tests__/diff/svnlook-delete.svndiff b/src/parser/__tests__/diff/svnlook-delete.svndiff new file mode 100644 index 00000000..c3e7f7ae --- /dev/null +++ b/src/parser/__tests__/diff/svnlook-delete.svndiff @@ -0,0 +1,7 @@ +Deleted: OTHER +=================================================================== +--- OTHER 2013-12-18 21:00:43 UTC (rev 19) ++++ OTHER 2013-12-18 21:01:18 UTC (txn 19-z) +@@ -1 +0,0 @@ +-other +