Changeset 66800 in webkit


Ignore:
Timestamp:
Sep 4, 2010 6:12:17 PM (14 years ago)
Author:
dbates@webkit.org
Message:

2010-09-04 Daniel Bates <dbates@rim.com>

Reviewed by Martin Robinson.

Teach svn-apply/unapply about svn:mergeinfo
https://bugs.webkit.org/show_bug.cgi?id=45236

Recognize the svn:mergeinfo property and ignore it for now.

Currently, svn-apply/unapply recognize only '+' and '-'
property changes within a diff. We should add support
to recognize "Merged" and "Reverse-merged" changes as well.
Because svn:mergeinfo is metadata that is used only by SVN
and tends to be error-prone and/or nuisance (*), we will ignore
it for now.
(*) See "Parting Thoughts" of <http://www.collab.net/community/subversion/articles/merge-info.html>.

  • Scripts/VCSUtils.pm:
    • Modified parseSvnProperty() to recognize "Merged" and "Reverse-merged" as the start of a property value.
  • Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffFooter.pl:
    • Added the following unit tests: "simple: add svn:mergeinfo" "simple: delete svn:mergeinfo" "simple: modified svn:mergeinfo"
  • Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl:
    • Added the following unit tests: "simple: add svn:mergeinfo" "simple: delete svn:mergeinfo" "simple: modified svn:mergeinfo" "simple: modified svn:mergeinfo using SVN 1.4 syntax" "'Merged' change followed by 'Merged' change" "'Reverse-merged' change followed by 'Reverse-merged' change"
  • Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl:
    • Added the following unit tests: "'Merged' change" "'Reverse-merged' change" "'Reverse-merged' change followed by 'Merge' change" "'Merged' change followed by 'Merge' change" "'Reverse-merged' change followed by 'Reverse-merged' change" "'Reverse-merged' change followed by 'Reverse-merged' change followed by 'Merged' change"
Location:
trunk/WebKitTools
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKitTools/ChangeLog

    r66797 r66800  
     12010-09-04  Daniel Bates  <dbates@rim.com>
     2
     3        Reviewed by Martin Robinson.
     4
     5        Teach svn-apply/unapply about svn:mergeinfo
     6        https://bugs.webkit.org/show_bug.cgi?id=45236
     7
     8        Recognize the svn:mergeinfo property and ignore it for now.
     9
     10        Currently, svn-apply/unapply recognize only '+' and '-'
     11        property changes within a diff. We should add support
     12        to recognize "Merged" and "Reverse-merged" changes as well.
     13        Because svn:mergeinfo is metadata that is used only by SVN
     14        and tends to be error-prone and/or nuisance (*), we will ignore
     15        it for now.
     16        (*) See "Parting Thoughts" of <http://www.collab.net/community/subversion/articles/merge-info.html>.
     17
     18        * Scripts/VCSUtils.pm:
     19          - Modified parseSvnProperty() to recognize "Merged" and
     20            "Reverse-merged" as the start of a property value.
     21        * Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffFooter.pl:
     22          - Added the following unit tests:
     23            "simple: add svn:mergeinfo"
     24            "simple: delete svn:mergeinfo"
     25            "simple: modified svn:mergeinfo"
     26        * Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl:
     27          - Added the following unit tests:
     28            "simple: add svn:mergeinfo"
     29            "simple: delete svn:mergeinfo"
     30            "simple: modified svn:mergeinfo"
     31            "simple: modified svn:mergeinfo using SVN 1.4 syntax"
     32            "'Merged' change followed by 'Merged' change"
     33            "'Reverse-merged' change followed by 'Reverse-merged' change"
     34        * Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl:
     35          - Added the following unit tests:
     36            "'Merged' change"
     37            "'Reverse-merged' change"
     38            "'Reverse-merged' change followed by 'Merge' change"
     39            "'Merged' change followed by 'Merge' change"
     40            "'Reverse-merged' change followed by 'Reverse-merged' change"
     41            "'Reverse-merged' change followed by 'Reverse-merged' change followed by 'Merged' change"
     42
    1432010-09-04  Lucas De Marchi  <lucas.demarchi@profusion.mobi>
    244
  • trunk/WebKitTools/Scripts/VCSUtils.pm

    r65732 r66800  
    9595my $svnPropertiesStartRegEx = qr#^Property changes on: ([^\r\n]+)#; # $1 is normally the same as the index path.
    9696my $svnPropertyStartRegEx = qr#^(Modified|Name|Added|Deleted): ([^\r\n]+)#; # $2 is the name of the property.
    97 my $svnPropertyValueStartRegEx = qr#^   (\+|-) ([^\r\n]+)#; # $2 is the start of the property's value (which may span multiple lines).
     97my $svnPropertyValueStartRegEx = qr#^   (\+|-|Merged|Reverse-merged) ([^\r\n]+)#; # $2 is the start of the property's value (which may span multiple lines).
    9898
    9999# This method is for portability. Return the system-appropriate exit
     
    10381038
    10391039    my $propertyChangeDelta;
    1040     if ($propertyValueType eq '+') {
     1040    if ($propertyValueType eq "+" || $propertyValueType eq "Merged") {
    10411041        $propertyChangeDelta = 1;
    1042     } elsif ($propertyValueType eq '-') {
     1042    } elsif ($propertyValueType eq "-" || $propertyValueType eq "Reverse-merged") {
    10431043        $propertyChangeDelta = -1;
    10441044    } else {
     
    10941094        $eol = $POSTMATCH;
    10951095    } else {
    1096         die("Failed to find property value beginning with '+' or '-': \"$_\".");
     1096        die("Failed to find property value beginning with '+', '-', 'Merged', or 'Reverse-merged': \"$_\".");
    10971097    }
    10981098
  • trunk/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffFooter.pl

    r60015 r66800  
    6161{
    6262    # New test
     63    diffName => "simple: add svn:mergeinfo",
     64    inputText => <<'END',
     65Property changes on: Makefile
     66___________________________________________________________________
     67Added: svn:mergeinfo
     68   Merged /trunk/Makefile:r33020
     69END
     70    expectedReturn => [
     71{
     72    propertyPath => "Makefile",
     73},
     74undef],
     75    expectedNextLine => undef,
     76},
     77{
     78    # New test
     79    diffName => "simple: delete svn:mergeinfo",
     80    inputText => <<'END',
     81Property changes on: Makefile
     82___________________________________________________________________
     83Deleted: svn:mergeinfo
     84   Reverse-merged /trunk/Makefile:r33020
     85END
     86    expectedReturn => [
     87{
     88    propertyPath => "Makefile",
     89},
     90undef],
     91    expectedNextLine => undef,
     92},
     93{
     94    # New test
     95    diffName => "simple: modified svn:mergeinfo",
     96    inputText => <<'END',
     97Property changes on: Makefile
     98___________________________________________________________________
     99Modified: svn:mergeinfo
     100   Reverse-merged /trunk/Makefile:r33020
     101   Merged /trunk/Makefile:r41697
     102END
     103    expectedReturn => [
     104{
     105    propertyPath => "Makefile",
     106},
     107undef],
     108    expectedNextLine => undef,
     109},
     110{
     111    # New test
    63112    diffName => "simple: delete svn:executable",
    64113    inputText => <<'END',
  • trunk/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl

    r65734 r66800  
    7474    expectedNextLine => undef,
    7575},
     76{
     77    # New test
     78    diffName => "simple: add svn:mergeinfo",
     79    inputText => <<'END',
     80Added: svn:mergeinfo
     81   Merged /trunk/Makefile:r33020
     82END
     83    expectedReturn => [
     84{
     85    name => "svn:mergeinfo",
     86    propertyChangeDelta => 1,
     87    value => "/trunk/Makefile:r33020",
     88},
     89undef],
     90    expectedNextLine => undef,
     91},
     92{
     93    # New test
     94    diffName => "simple: delete svn:mergeinfo",
     95    inputText => <<'END',
     96Deleted: svn:mergeinfo
     97   Reverse-merged /trunk/Makefile:r33020
     98END
     99    expectedReturn => [
     100{
     101    name => "svn:mergeinfo",
     102    propertyChangeDelta => -1,
     103    value => "/trunk/Makefile:r33020",
     104},
     105undef],
     106    expectedNextLine => undef,
     107},
     108{
     109    # New test
     110    diffName => "simple: modified svn:mergeinfo",
     111    inputText => <<'END',
     112Modified: svn:mergeinfo
     113   Reverse-merged /trunk/Makefile:r33020
     114   Merged /trunk/Makefile:r41697
     115END
     116    expectedReturn => [
     117{
     118    name => "svn:mergeinfo",
     119    propertyChangeDelta => 1,
     120    value => "/trunk/Makefile:r41697",
     121},
     122undef],
     123    expectedNextLine => undef,
     124},
    76125####
    77126# Using SVN 1.4 syntax
     
    79128{
    80129    # New test
     130    diffName => "simple: modified svn:mergeinfo using SVN 1.4 syntax",
     131    inputText => <<'END',
     132Name: svn:mergeinfo
     133   Reverse-merged /trunk/Makefile:r33020
     134   Merged /trunk/Makefile:r41697
     135END
     136    expectedReturn => [
     137{
     138    name => "svn:mergeinfo",
     139    propertyChangeDelta => 1,
     140    value => "/trunk/Makefile:r41697",
     141},
     142undef],
     143    expectedNextLine => undef,
     144},
     145{
     146    # New test
    81147    diffName => "simple: delete svn:executable using SVN 1.4 syntax",
    82148    inputText => <<'END',
     
    459525"Added: svn:executable\n"],
    460526    expectedNextLine => "   + *\n",
     527},
     528{
     529    # New test
     530    diffName => "'Merged' change followed by 'Merged' change",
     531    inputText => <<'END',
     532Added: svn:mergeinfo
     533   Merged /trunk/Makefile:r33020
     534   Merged /trunk/Makefile.shared:r58350
     535END
     536    expectedReturn => [
     537{
     538    name => "svn:mergeinfo",
     539    propertyChangeDelta => 1,
     540    value => "/trunk/Makefile.shared:r58350",
     541},
     542undef],
     543    expectedNextLine => undef,
     544},
     545{
     546    # New test
     547    diffName => "'Reverse-merged' change followed by 'Reverse-merged' change",
     548    inputText => <<'END',
     549Deleted: svn:mergeinfo
     550   Reverse-merged /trunk/Makefile:r33020
     551   Reverse-merged /trunk/Makefile.shared:r58350
     552END
     553    expectedReturn => [
     554{
     555    name => "svn:mergeinfo",
     556    propertyChangeDelta => -1,
     557    value => "/trunk/Makefile.shared:r58350",
     558},
     559undef],
     560    expectedNextLine => undef,
    461561},
    462562####
  • trunk/WebKitTools/Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl

    r65734 r66800  
    5959{
    6060    # New test
     61    diffName => "'Merged' change",
     62    inputText => <<'END',
     63   Merged /trunk/Makefile:r33020
     64END
     65    expectedReturn => ["/trunk/Makefile:r33020", undef],
     66    expectedNextLine => undef,
     67},
     68{
     69    # New test
     70    diffName => "'Reverse-merged' change",
     71    inputText => <<'END',
     72   Reverse-merged /trunk/Makefile:r33020
     73END
     74    expectedReturn => ["/trunk/Makefile:r33020", undef],
     75    expectedNextLine => undef,
     76},
     77{
     78    # New test
    6179    diffName => "single-line '-' change followed by empty line with Unix line endings",
    6280    inputText => <<'END',
     
    153171    expectedNextLine => "long sentence that spans\n",
    154172},
     173{
     174    # New test
     175    diffName => "'Reverse-merged' change followed by 'Merge' change",
     176    inputText => <<'END',
     177   Reverse-merged /trunk/Makefile:r33020
     178   Merged /trunk/Makefile:r41697
     179END
     180    expectedReturn => ["/trunk/Makefile:r33020", "   Merged /trunk/Makefile:r41697\n"],
     181    expectedNextLine => undef,
     182},
     183{
     184    # New test
     185    diffName => "'Merged' change followed by 'Merge' change",
     186    inputText => <<'END',
     187   Merged /trunk/Makefile:r33020
     188   Merged /trunk/Makefile.shared:r58350
     189END
     190    expectedReturn => ["/trunk/Makefile:r33020", "   Merged /trunk/Makefile.shared:r58350\n"],
     191    expectedNextLine => undef,
     192},
     193{
     194    # New test
     195    diffName => "'Reverse-merged' change followed by 'Reverse-merged' change",
     196    inputText => <<'END',
     197   Reverse-merged /trunk/Makefile:r33020
     198   Reverse-merged /trunk/Makefile.shared:r58350
     199END
     200    expectedReturn => ["/trunk/Makefile:r33020", "   Reverse-merged /trunk/Makefile.shared:r58350\n"],
     201    expectedNextLine => undef,
     202},
     203{
     204    # New test
     205    diffName => "'Reverse-merged' change followed by 'Reverse-merged' change followed by 'Merged' change",
     206    inputText => <<'END',
     207   Reverse-merged /trunk/Makefile:r33020
     208   Reverse-merged /trunk/Makefile.shared:r58350
     209   Merged /trunk/ChangeLog:r64190
     210END
     211    expectedReturn => ["/trunk/Makefile:r33020", "   Reverse-merged /trunk/Makefile.shared:r58350\n"],
     212    expectedNextLine => "   Merged /trunk/ChangeLog:r64190\n",
     213},
    155214);
    156215
Note: See TracChangeset for help on using the changeset viewer.