mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-12-26 23:40:56 +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(
|
||||
// This is a normal SVN text change, probably from "svn diff".
|
||||
'(?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".
|
||||
'(?P<type>Property changes on): (?P<cur>.+)',
|
||||
// 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':
|
||||
|
|
|
@ -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;
|
||||
|
|
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