Author: olamy
Date: Sat Dec 10 21:22:16 2011
New Revision: 1212880

URL: http://svn.apache.org/viewvc?rev=1212880&view=rev
Log:
[SCM-649] Enhance SCM changelog model to hold more data about changes
patch regarding bazaar implementation.
Submitted by Petr Kozelka.

Modified:
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumerTest.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/resources/bazaar/changeLogWithMerge.txt

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java?rev=1212880&r1=1212879&r2=1212880&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
 Sat Dec 10 21:22:16 2011
@@ -71,7 +71,7 @@ public class BazaarConsumer
         IDENTIFIERS.put( "unknown", ScmFileStatus.UNKNOWN );
         IDENTIFIERS.put( "modified", ScmFileStatus.MODIFIED );
         IDENTIFIERS.put( "removed", ScmFileStatus.DELETED );
-        IDENTIFIERS.put( "renamed", ScmFileStatus.MODIFIED );
+        IDENTIFIERS.put( "renamed", ScmFileStatus.RENAMED );
         MESSAGES.put( "bzr: WARNING:", "WARNING" );
         MESSAGES.put( "bzr: ERROR:", "ERROR" );
         MESSAGES.put( "'bzr' ", "ERROR" ); // bzr isn't found in windows path

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java?rev=1212880&r1=1212879&r2=1212880&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
 Sat Dec 10 21:22:16 2011
@@ -54,6 +54,8 @@ public class BazaarChangeLogConsumer
 
     private static final String MERGED_TOKEN = "merged: ";
 
+    private static final String RENAME_SEPARATOR = " => ";
+
     private List<ChangeSet> logEntries = new ArrayList<ChangeSet>();
 
     private ChangeSet currentChange;
@@ -168,7 +170,25 @@ public class BazaarChangeLogConsumer
         else if ( currentStatus != null )
         {
             tmpLine = tmpLine.trim();
-            ChangeFile changeFile = new ChangeFile( tmpLine, currentRevision );
+            final ChangeFile changeFile;
+            if ( currentStatus == ScmFileStatus.RENAMED )
+            {
+                final String[] parts = tmpLine.split( RENAME_SEPARATOR );
+                if ( parts.length != 2 )
+                {
+                    changeFile = new ChangeFile( tmpLine, currentRevision );
+                }
+                else
+                {
+                    changeFile = new ChangeFile( parts[1], currentRevision );
+                    changeFile.setOriginalName( parts[0] );
+                }
+            }
+            else
+            {
+                changeFile = new ChangeFile( tmpLine, currentRevision );
+            }
+            changeFile.setAction( currentStatus );
             currentChange.addFile( changeFile );
         }
         else if ( line.startsWith( BRANCH_NICK_TOKEN ) )

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumerTest.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumerTest.java?rev=1212880&r1=1212879&r2=1212880&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumerTest.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumerTest.java
 Sat Dec 10 21:22:16 2011
@@ -26,9 +26,12 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.List;
 
+import org.apache.maven.scm.ChangeFile;
 import org.apache.maven.scm.ChangeSet;
+import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.log.DefaultLog;
+import org.junit.Assert;
 
 public class BazaarChangeLogConsumerTest
     extends ScmTestCase
@@ -51,5 +54,20 @@ public class BazaarChangeLogConsumerTest
 
         List<ChangeSet> mods = consumer.getModifications();
         assertEquals( 4, mods.size() );
+
+        final ChangeSet ch2 = mods.get( 2 );
+        Assert.assertEquals( "Unexpected committer", "[email protected]", 
ch2.getAuthor() );
+        Assert.assertEquals( "Unexpected comment", "Second", ch2.getComment() 
);
+        Assert.assertEquals( "File count", 2, ch2.getFiles().size() );
+
+        final ChangeFile ch2f1 = ch2.getFiles().get( 0 );
+        Assert.assertEquals( "Invalid action", ScmFileStatus.MODIFIED, 
ch2f1.getAction() );
+        Assert.assertEquals( "Invalid  file name", "changeLogWithMerge.txt", 
ch2f1.getName() );
+        Assert.assertNull( "Unexpected originalName", ch2f1.getOriginalName() 
);
+
+        final ChangeFile ch2f2 = ch2.getFiles().get( 1 );
+        Assert.assertEquals( "Invalid action", ScmFileStatus.RENAMED, 
ch2f2.getAction() );
+        Assert.assertEquals( "Invalid file name", "blablabla.txt", 
ch2f2.getName() );
+        Assert.assertEquals( "Invalid original name", "a", 
ch2f2.getOriginalName() );
     }
 }

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/resources/bazaar/changeLogWithMerge.txt
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/resources/bazaar/changeLogWithMerge.txt?rev=1212880&r1=1212879&r2=1212880&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/resources/bazaar/changeLogWithMerge.txt
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/resources/bazaar/changeLogWithMerge.txt
 Sat Dec 10 21:22:16 2011
@@ -39,6 +39,8 @@ message:
   Second
 modified:
   changeLogWithMerge.txt
+renamed:
+  a => blablabla.txt
 ------------------------------------------------------------
 revno: 1
 committer: [email protected]


Reply via email to