1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-25 16:22:42 +01:00

Parse the output of svnlook diff ...

Summary: Ref T4195. When figuring out changed content in SVN, the easiest approach is to use `svnlook diff`, but it has a slightly different header than we're used to. Adjust the parser for it and add some tests.

Test Plan: Clean unit tests.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T4195

Differential Revision: https://secure.phabricator.com/D7790
This commit is contained in:
epriestley 2013-12-18 14:20:59 -08:00
parent cd0ee5492a
commit 8e177c4db8
5 changed files with 34 additions and 0 deletions

View file

@ -207,6 +207,8 @@ final class ArcanistDiffParser {
$patterns = array( $patterns = array(
// This is a normal SVN text change, probably from "svn diff". // This is a normal SVN text change, probably from "svn diff".
'(?P<type>Index): (?P<cur>.+)', '(?P<type>Index): (?P<cur>.+)',
// This is an SVN text change, probably from "svnlook diff".
'(?P<type>Modified|Added|Deleted): (?P<cur>.+)',
// This is an SVN property change, probably from "svn diff". // This is an SVN property change, probably from "svn diff".
'(?P<type>Property changes on): (?P<cur>.+)', '(?P<type>Property changes on): (?P<cur>.+)',
// This is a git commit message, probably from "git show". // This is a git commit message, probably from "git show".
@ -285,6 +287,9 @@ final class ArcanistDiffParser {
switch ($match['type']) { switch ($match['type']) {
case 'Index': case 'Index':
case 'Modified':
case 'Added':
case 'Deleted':
$this->parseIndexHunk($change); $this->parseIndexHunk($change);
break; break;
case 'Property changes on': case 'Property changes on':

View file

@ -570,6 +570,11 @@ EOTEXT
ArcanistDiffChangeType::TYPE_CHANGE, ArcanistDiffChangeType::TYPE_CHANGE,
$change->getType()); $change->getType());
break; break;
case 'svnlook-basics.svndiff':
case 'svnlook-add.svndiff':
case 'svnlook-delete.svndiff':
$this->assertEqual(1, count($changes));
break;
default: default:
throw new Exception("No test block for diff file {$diff_file}."); throw new Exception("No test block for diff file {$diff_file}.");
break; break;

View file

@ -0,0 +1,7 @@
Added: OTHER
===================================================================
--- OTHER (rev 0)
+++ OTHER 2013-12-18 21:00:43 UTC (txn 18-y)
@@ -0,0 +1 @@
+other

View file

@ -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

View file

@ -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