Author: olamy
Date: Fri Apr 20 21:11:59 2012
New Revision: 1328506

URL: http://svn.apache.org/viewvc?rev=1328506&view=rev
Log:
[SCM-658] HgChangeLogCommand doesn't implement method 
executeChangeLogCommand(). (patch 3)
Submitted Vladimir Kralik.

Modified:
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java?rev=1328506&r1=1328505&r2=1328506&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommand.java
 Fri Apr 20 21:11:59 2012
@@ -28,6 +28,7 @@ import org.apache.maven.scm.ScmBranch;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.ScmVersion;
 import org.apache.maven.scm.command.Command;
 import org.apache.maven.scm.command.changelog.AbstractChangeLogCommand;
 import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
@@ -72,4 +73,36 @@ public class HgChangeLogCommand
         ChangeLogSet changeLogSet = new ChangeLogSet( logEntries, startDate, 
endDate );
         return new ChangeLogScmResult( changeLogSet, result );
     }
+
+    @Override
+    protected ChangeLogScmResult executeChangeLogCommand(
+            ScmProviderRepository repository, ScmFileSet fileSet,
+            ScmVersion startVersion, ScmVersion endVersion, String datePattern)
+            throws ScmException {
+        StringBuilder revisionInterval = new StringBuilder();
+        if (startVersion != null) 
revisionInterval.append(startVersion.getName());
+        revisionInterval.append(":");
+        if (endVersion != null) revisionInterval.append(endVersion.getName());
+        
+        String[] cmd = new String[] { HgCommandConstants.LOG_CMD,
+                HgCommandConstants.VERBOSE_OPTION,
+                HgCommandConstants.NO_MERGES_OPTION,
+                HgCommandConstants.REVISION_OPTION,
+                revisionInterval.toString()
+                };
+        HgChangeLogConsumer consumer = new HgChangeLogConsumer( getLogger(), 
datePattern );
+        ScmResult result = HgUtils.execute( consumer, getLogger(), 
fileSet.getBasedir(), cmd );
+
+        List<ChangeSet> logEntries = consumer.getModifications();
+        Date startDate = null;
+        Date endDate = null;
+        if (!logEntries.isEmpty()) {
+            startDate = logEntries.get(0).getDate();
+            endDate = logEntries.get(logEntries.size() - 1).getDate();
+        }
+        ChangeLogSet changeLogSet = new ChangeLogSet( logEntries, startDate, 
endDate );
+        changeLogSet.setStartVersion(startVersion);
+        changeLogSet.setEndVersion(endVersion);
+        return new ChangeLogScmResult( changeLogSet, result );
+    }
 }


Reply via email to