<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[211543] trunk/Tools</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/211543">211543</a></dd>
<dt>Author</dt> <dd>dbates@webkit.org</dd>
<dt>Date</dt> <dd>2017-02-01 17:41:24 -0800 (Wed, 01 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>REGRESSION (<a href="http://trac.webkit.org/projects/webkit/changeset/210820">r210820</a>): svn-create-patch does not emit property change only diff
https://bugs.webkit.org/show_bug.cgi?id=167169

Reviewed by David Kilzer.

More directly handle the SVN 1.9 or newer syntax change for a diff of a copied or moved file
- a SVN diff header and an empty body. In particular, remove a duplicate leading SVN diff
header from the output of &quot;svn diff&quot; on a file that was copied or moved.

Following <a href="http://trac.webkit.org/projects/webkit/changeset/210820">r210820</a> svn-create-patch emits to standard output a diff only if it has at least one
chunk range line (e.g. @@ -0,0 +1,7 @@) as a means to workaround a syntax change in the diff
output of a copied or moved file in SVN version 1.9 or newer. In SVN 1.9 or newer &quot;svn diff&quot;
of a copied or moved file always emits to standard output a leading SVN diff header (an &quot;Index:&quot;
line followed by a separator line) with an empty body; =&gt; no chunk range lines. However a diff
of a file with only a property change also does not contain any chunk range lines. Therefore
svn-create-patch no longer emitted to standard output such a diff. Instead of indirectly detecting
a SVN diff header with an empty body by counting the number of chunk range lines in the diff
we should directly test for the presence of a leading SVN diff header with an empty body and
remove such lines from the diff.

* Scripts/VCSUtils.pm:
(fixSVNPatchForAdditionWithHistory): Added.
* Scripts/svn-create-patch:
(generateDiff): Pass the output from &quot;svn diff&quot; to fixSVNPatchForAdditionWithHistory() when
we have a non empty patch for an added file with history (i.e. a copied or moved file).
* Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptsVCSUtilspm">trunk/Tools/Scripts/VCSUtils.pm</a></li>
<li><a href="#trunkToolsScriptssvncreatepatch">trunk/Tools/Scripts/svn-create-patch</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkToolsScriptswebkitperlVCSUtils_unittestfixSVNPatchForAdditionWithHistorypl">trunk/Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (211542 => 211543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2017-02-02 01:23:37 UTC (rev 211542)
+++ trunk/Tools/ChangeLog        2017-02-02 01:41:24 UTC (rev 211543)
</span><span class="lines">@@ -1,3 +1,32 @@
</span><ins>+2017-02-01  Daniel Bates  &lt;dabates@apple.com&gt;
+
+        REGRESSION (r210820): svn-create-patch does not emit property change only diff
+        https://bugs.webkit.org/show_bug.cgi?id=167169
+
+        Reviewed by David Kilzer.
+
+        More directly handle the SVN 1.9 or newer syntax change for a diff of a copied or moved file
+        - a SVN diff header and an empty body. In particular, remove a duplicate leading SVN diff
+        header from the output of &quot;svn diff&quot; on a file that was copied or moved.
+
+        Following r210820 svn-create-patch emits to standard output a diff only if it has at least one
+        chunk range line (e.g. @@ -0,0 +1,7 @@) as a means to workaround a syntax change in the diff
+        output of a copied or moved file in SVN version 1.9 or newer. In SVN 1.9 or newer &quot;svn diff&quot;
+        of a copied or moved file always emits to standard output a leading SVN diff header (an &quot;Index:&quot;
+        line followed by a separator line) with an empty body; =&gt; no chunk range lines. However a diff
+        of a file with only a property change also does not contain any chunk range lines. Therefore
+        svn-create-patch no longer emitted to standard output such a diff. Instead of indirectly detecting
+        a SVN diff header with an empty body by counting the number of chunk range lines in the diff
+        we should directly test for the presence of a leading SVN diff header with an empty body and
+        remove such lines from the diff.
+
+        * Scripts/VCSUtils.pm:
+        (fixSVNPatchForAdditionWithHistory): Added.
+        * Scripts/svn-create-patch:
+        (generateDiff): Pass the output from &quot;svn diff&quot; to fixSVNPatchForAdditionWithHistory() when
+        we have a non empty patch for an added file with history (i.e. a copied or moved file).
+        * Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl: Added.
+
</ins><span class="cx"> 2017-02-01  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] Update CARingBuffer class
</span></span></pre></div>
<a id="trunkToolsScriptsVCSUtilspm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/VCSUtils.pm (211542 => 211543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/VCSUtils.pm        2017-02-02 01:23:37 UTC (rev 211542)
+++ trunk/Tools/Scripts/VCSUtils.pm        2017-02-02 01:41:24 UTC (rev 211543)
</span><span class="lines">@@ -1736,6 +1736,51 @@
</span><span class="cx">     return $patch;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+# Removes a leading Subversion header without an associated diff if one exists.
+#
+# This subroutine dies if the specified patch does not begin with an &quot;Index:&quot; line.
+#
+# In SVN 1.9 or newer, &quot;svn diff&quot; of a moved/copied file without post changes always
+# emits a leading header without an associated diff:
+#     Index: B.txt
+#     ===================================================================
+# (end of file or next header)
+#
+# If the same file has a property change then the patch has the form:
+#     Index: B.txt
+#     ===================================================================
+#     Index: B.txt
+#     ===================================================================
+#     --- B.txt    (revision 1)
+#     +++ B.txt    (working copy)
+#
+#     Property change on B.txt
+#     ___________________________________________________________________
+#     Added: svn:executable
+#     ## -0,0 +1 ##
+#     +*
+#     \ No newline at end of property
+#
+# We need to apply this function to the ouput of &quot;svn diff&quot; for an addition with history
+# to remove a duplicate header so that svn-apply can apply the resulting patch.
+sub fixSVNPatchForAdditionWithHistory($)
+{
+    my ($patch) = @_;
+
+    $patch =~ /(\r?\n)/;
+    my $lineEnding = $1;
+    my @lines = split(/$lineEnding/, $patch);
+
+    if ($lines[0] !~ /$svnDiffStartRegEx/) {
+        die(&quot;First line of SVN diff does not begin with \&quot;Index \&quot;: \&quot;$lines[0]\&quot;&quot;);
+    }
+    if (@lines &lt;= 2) {
+        return &quot;&quot;;
+    }
+    splice(@lines, 0, 2) if $lines[2] =~ /$svnDiffStartRegEx/;
+    return join($lineEnding, @lines);
+}
+
</ins><span class="cx"> # If possible, returns a ChangeLog patch equivalent to the given one,
</span><span class="cx"> # but with the newest ChangeLog entry inserted at the top of the
</span><span class="cx"> # file -- i.e. no leading context and all lines starting with &quot;+&quot;.
</span></span></pre></div>
<a id="trunkToolsScriptssvncreatepatch"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/svn-create-patch (211542 => 211543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/svn-create-patch        2017-02-02 01:23:37 UTC (rev 211542)
+++ trunk/Tools/Scripts/svn-create-patch        2017-02-02 01:41:24 UTC (rev 211543)
</span><span class="lines">@@ -225,7 +225,8 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     my $patch = &quot;&quot;;
</span><del>-    if ($fileData-&gt;{modificationType} eq &quot;additionWithHistory&quot;) {
</del><ins>+    my $isAdditionWithHistory = $fileData-&gt;{modificationType} eq &quot;additionWithHistory&quot;;
+    if ($isAdditionWithHistory) {
</ins><span class="cx">         manufacturePatchForAdditionWithHistory($fileData);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -232,21 +233,11 @@
</span><span class="cx">     my $diffOptions = diffOptionsForFile($file);
</span><span class="cx">     my $escapedFile = escapeSubversionPath($file);
</span><span class="cx">     open DIFF, &quot;svn diff --diff-cmd diff -x -$diffOptions '$escapedFile' |&quot; or die;
</span><del>-    my $numTextChunks = 0;
</del><span class="cx">     while (&lt;DIFF&gt;) {
</span><del>-        $numTextChunks += 1 if parseChunkRange($_);
</del><span class="cx">         $patch .= $_;
</span><span class="cx">     }
</span><span class="cx">     close DIFF;
</span><del>-    if (!$numTextChunks) {
-        # For moved/copied files without post changes SVN 1.9 or greater emits a diff with an empty
-        # body as opposed to emitting nothing as in earlier versions of SVN. For example, move file
-        # A.txt to B.txt then the diff of B.txt in SVN 1.9 or greater is:
-        #     Index: B.txt
-        #     ===================================================================
-        # Therefore we ignore emitting such a diff.
-        $patch = &quot;&quot;;
-    }
</del><ins>+    $patch = fixSVNPatchForAdditionWithHistory($patch) if $patch &amp;&amp; $isAdditionWithHistory;
</ins><span class="cx">     if (basename($file) eq &quot;ChangeLog&quot;) {
</span><span class="cx">         my $changeLogHash = fixChangeLogPatch($patch);
</span><span class="cx">         $patch = $changeLogHash-&gt;{patch};   
</span></span></pre></div>
<a id="trunkToolsScriptswebkitperlVCSUtils_unittestfixSVNPatchForAdditionWithHistorypl"></a>
<div class="addfile"><h4>Added: trunk/Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl (0 => 211543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl                                (rev 0)
+++ trunk/Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl        2017-02-02 01:41:24 UTC (rev 211543)
</span><span class="lines">@@ -0,0 +1,288 @@
</span><ins>+#!/usr/bin/perl
+#
+# Copyright (C) 2017 Apple Inc.  All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Unit tests of VCSUtils::fixSVNPatchForAdditionWithHistory().
+
+use strict;
+use warnings;
+
+use Test::More;
+use VCSUtils;
+
+my @testCaseHashRefs = (
+###
+# Test cases that should have no change
+##
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: [no change] modify file&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+@@ -1 +1 @@
+-A
++A2
+END
+    expectedReturn =&gt; &lt;&lt;'END'
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+@@ -1 +1 @@
+-A
++A2
+END
+},
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: [no change] delete file&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (nonexistent)
+@@ -1 +0,0 @@
+-A
+END
+    expectedReturn =&gt; &lt;&lt;'END'
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (nonexistent)
+@@ -1 +0,0 @@
+-A
+END
+},
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: [no change] add svn:executable property&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Added: svn:executable
+## -0,0 +1 ##
++*
+\ No newline at end of property
+END
+    expectedReturn =&gt; &lt;&lt;'END'
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Added: svn:executable
+## -0,0 +1 ##
++*
+\ No newline at end of property
+END
+},
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: [no change] remove svn:executable property&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Deleted: svn:executable
+## -1 +0,0 ##
+-*
+\ No newline at end of property
+END
+    expectedReturn =&gt; &lt;&lt;'END'
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Deleted: svn:executable
+## -1 +0,0 ##
+-*
+\ No newline at end of property
+END
+},
+###
+# Moved/copied file using SVN 1.9 syntax
+##
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: moved/copied file&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+END
+    expectedReturn =&gt; &quot;&quot;
+},
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: moved/copied file with added svn:executable property&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Added: svn:executable
+## -0,0 +1 ##
++*
+\ No newline at end of property
+END
+    expectedReturn =&gt; &lt;&lt;'END'
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Added: svn:executable
+## -0,0 +1 ##
++*
+\ No newline at end of property
+END
+},
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: moved/copied file with removed svn:executable property&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Deleted: svn:executable
+## -1 +0,0 ##
+-*
+\ No newline at end of property
+END
+    expectedReturn =&gt; &lt;&lt;'END'
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Deleted: svn:executable
+## -1 +0,0 ##
+-*
+\ No newline at end of property
+END
+},
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: moved/copied file with added multi-line property&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Added: documentation
+## -0,0 +1,3 ##
++A
++long sentence that spans
++multiple lines.
+END
+    expectedReturn =&gt; &lt;&lt;'END'
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Added: documentation
+## -0,0 +1,3 ##
++A
++long sentence that spans
++multiple lines.
+END
+},
+{ # New test
+    diffName =&gt; &quot;fixSVNPatchForAdditionWithHistory: moved/copied file with modified multi-line property&quot;,
+    inputText =&gt; &lt;&lt;'END',
+Index: test_file.txt
+===================================================================
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Modified: documentation
+## -1,3 +1,3 ##
+-A
++Another
+ long sentence that spans
+ multiple lines.
+END
+    expectedReturn =&gt; &lt;&lt;'END'
+Index: test_file.txt
+===================================================================
+--- test_file.txt        (revision 1)
++++ test_file.txt        (working copy)
+
+Property changes on: test_file.txt
+___________________________________________________________________
+Modified: documentation
+## -1,3 +1,3 ##
+-A
++Another
+ long sentence that spans
+ multiple lines.
+END
+},
+);
+
+my $testCasesCount = @testCaseHashRefs;
+plan(tests =&gt; $testCasesCount); # Total number of assertions.
+
+foreach my $testCase (@testCaseHashRefs) {
+    my $testNameStart = &quot;fixSVNPatchForAdditionWithHistory(): $testCase-&gt;{diffName}: comparing&quot;;
+
+    my $got = VCSUtils::fixSVNPatchForAdditionWithHistory($testCase-&gt;{inputText});
+    chomp(my $expectedReturn = $testCase-&gt;{expectedReturn});

+    is_deeply($got, $expectedReturn, &quot;$testNameStart return value.&quot;);
+}
</ins><span class="cx">Property changes on: trunk/Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="allowtabs"></a>
<div class="addfile"><h4>Added: allow-tabs</h4></div>
<ins>+1
</ins><span class="cx">\ No newline at end of property
</span></div>

</body>
</html>