You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by ev...@apache.org on 2006/02/01 21:53:30 UTC
svn commit: r374169 - in
/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm:
CommandParameter.java command/changelog/AbstractChangeLogCommand.java
provider/AbstractScmProvider.java provider/ScmProvider.java
Author: evenisse
Date: Wed Feb 1 12:53:24 2006
New Revision: 374169
URL: http://svn.apache.org/viewcvs?rev=374169&view=rev
Log:
Allow to run changelog between two tags
Modified:
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java?rev=374169&r1=374168&r2=374169&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java Wed Feb 1 12:53:24 2006
@@ -38,6 +38,10 @@
public final static CommandParameter BRANCH = new CommandParameter( "branch" );
+ public final static CommandParameter START_TAG = new CommandParameter( "startTag" );
+
+ public final static CommandParameter END_TAG = new CommandParameter( "endTag" );
+
public final static CommandParameter TAG = new CommandParameter( "tag" );
public final static CommandParameter FILE = new CommandParameter( "file" );
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java?rev=374169&r1=374168&r2=374169&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java Wed Feb 1 12:53:24 2006
@@ -23,6 +23,7 @@
import org.apache.maven.scm.ScmResult;
import org.apache.maven.scm.command.AbstractCommand;
import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.codehaus.plexus.util.StringUtils;
import java.util.Date;
@@ -38,6 +39,13 @@
Date startDate, Date endDate, String branch )
throws ScmException;
+ protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet,
+ String startTag, String endTag )
+ throws ScmException
+ {
+ throw new ScmException( "Unsupported method for this provider." );
+ }
+
public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
CommandParameters parameters )
throws ScmException
@@ -50,23 +58,34 @@
String branch = parameters.getString( CommandParameter.BRANCH, null );
- if ( numDays != 0 && ( startDate != null || endDate != null ) )
- {
- throw new ScmException( "Start or end date cannot be set if num days is set." );
- }
+ String startTag = parameters.getString( CommandParameter.START_TAG, null );
- if ( endDate != null && startDate == null )
+ String endTag = parameters.getString( CommandParameter.END_TAG, null );
+
+ if ( !StringUtils.isEmpty( startTag ) )
{
- throw new ScmException( "The end date is set but the start date isn't." );
+ return executeChangeLogCommand( repository, fileSet, startTag, endTag );
}
-
- if ( numDays > 0 )
+ else
{
- startDate = new Date( System.currentTimeMillis() - (long) numDays * 24 * 60 * 60 * 1000 );
+ if ( numDays != 0 && ( startDate != null || endDate != null ) )
+ {
+ throw new ScmException( "Start or end date cannot be set if num days is set." );
+ }
+
+ if ( endDate != null && startDate == null )
+ {
+ throw new ScmException( "The end date is set but the start date isn't." );
+ }
+
+ if ( numDays > 0 )
+ {
+ startDate = new Date( System.currentTimeMillis() - (long) numDays * 24 * 60 * 60 * 1000 );
- endDate = new Date( System.currentTimeMillis() + (long) 1 * 24 * 60 * 60 * 1000 );
- }
+ endDate = new Date( System.currentTimeMillis() + (long) 1 * 24 * 60 * 60 * 1000 );
+ }
- return executeChangeLogCommand( repository, fileSet, startDate, endDate, branch );
+ return executeChangeLogCommand( repository, fileSet, startDate, endDate, branch );
+ }
}
}
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java?rev=374169&r1=374168&r2=374169&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java Wed Feb 1 12:53:24 2006
@@ -131,6 +131,23 @@
return changelog( repository, fileSet, parameters );
}
+ /**
+ * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String, java.lang.String)
+ */
+ public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag )
+ throws ScmException
+ {
+ login( repository, fileSet );
+
+ CommandParameters parameters = new CommandParameters();
+
+ parameters.setString( CommandParameter.START_TAG, startTag );
+
+ parameters.setString( CommandParameter.END_TAG, endTag );
+
+ return changelog( repository, fileSet, parameters );
+ }
+
protected ChangeLogScmResult changelog( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java?rev=374169&r1=374168&r2=374169&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java Wed Feb 1 12:53:24 2006
@@ -90,6 +90,21 @@
throws ScmException;
/**
+ * Returns the changes that have happend in the source control system between two tags.
+ * This can be adding, removing, updating, ... of files
+ *
+ * @param repository the source control system
+ * @param fileSet the files to know the changes about. Implementations can also give the changes
+ * from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
+ * @param startTag the start tag
+ * @param endTag the end tag
+ * @return
+ * @throws ScmException
+ */
+ ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag )
+ throws ScmException;
+
+ /**
* Save the changes you have done into the repository. This will create a new version of the file or
* directory in the repository.
*