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]