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:
parent
cd0ee5492a
commit
8e177c4db8
5 changed files with 34 additions and 0 deletions
|
@ -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':
|
||||||
|
|
|
@ -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;
|
||||||
|
|
7
src/parser/__tests__/diff/svnlook-add.svndiff
Normal file
7
src/parser/__tests__/diff/svnlook-add.svndiff
Normal 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
|
||||||
|
|
10
src/parser/__tests__/diff/svnlook-basics.svndiff
Normal file
10
src/parser/__tests__/diff/svnlook-basics.svndiff
Normal 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
|
||||||
|
|
7
src/parser/__tests__/diff/svnlook-delete.svndiff
Normal file
7
src/parser/__tests__/diff/svnlook-delete.svndiff
Normal 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
|
||||||
|
|
Loading…
Reference in a new issue