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 2007/03/13 13:52:31 UTC

svn commit: r517675 - in /maven/scm/trunk: maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provid...

Author: evenisse
Date: Tue Mar 13 05:52:30 2007
New Revision: 517675

URL: http://svn.apache.org/viewvc?view=rev&rev=517675
Log:
[SCM-183] Add list command and list mojo

Added:
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java   (with props)
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/list/
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/list/LocalListCommandTckTest.java   (with props)
Modified:
    maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java
    maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommand.java

Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java?view=diff&rev=517675&r1=517674&r2=517675
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/AbstractListCommand.java Tue Mar 13 05:52:30 2007
@@ -44,7 +44,7 @@
      * @throws ScmException
      */
     protected abstract ListScmResult executeListCommand( ScmProviderRepository repository, ScmFileSet fileSet,
-                                                         boolean recursive )
+                                                         boolean recursive, String tag )
         throws ScmException;
 
     public ScmResult executeCommand( ScmProviderRepository repository, ScmFileSet fileSet,
@@ -58,6 +58,8 @@
 
         boolean recursive = parameters.getBoolean( CommandParameter.RECURSIVE );
 
-        return executeListCommand( repository, fileSet, recursive );
+        String tag = parameters.getString( CommandParameter.TAG, null );
+
+        return executeListCommand( repository, fileSet, recursive, tag );
     }
 }

Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java?view=diff&rev=517675&r1=517674&r2=517675
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/list/ListScmResult.java Tue Mar 13 05:52:30 2007
@@ -44,16 +44,14 @@
         files = new ArrayList( 0 );
     }
 
-    // XXX List of what?
-    public ListScmResult( String commandLine, List files )
+    public ListScmResult( String commandLine, List/*<ScmFile>*/ files )
     {
         super( commandLine, null, null, true );
 
         this.files = files;
     }
 
-    // XXX List of what?
-    public ListScmResult( List files, ScmResult result )
+    public ListScmResult( List/*<ScmFile>*/ files, ScmResult result )
     {
         super( result );
 
@@ -61,7 +59,7 @@
     }
 
     // XXX List of what?
-    public List getFiles()
+    public List/*<ScmFile>*/ getFiles()
     {
         return files;
     }

Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java?view=diff&rev=517675&r1=517674&r2=517675
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java Tue Mar 13 05:52:30 2007
@@ -341,4 +341,24 @@
                 "Command failed." + StringUtils.defaultString( result.getProviderMessage() ) );
         }
     }
+
+    public String getIncludes()
+    {
+        return includes;
+    }
+
+    public void setIncludes( String includes )
+    {
+        this.includes = includes;
+    }
+
+    public String getExcludes()
+    {
+        return excludes;
+    }
+
+    public void setExcludes( String excludes )
+    {
+        this.excludes = excludes;
+    }
 }

Added: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java?view=auto&rev=517675
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java (added)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java Tue Mar 13 05:52:30 2007
@@ -0,0 +1,122 @@
+package org.apache.maven.scm.plugin;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.list.ListScmResult;
+import org.apache.maven.scm.repository.ScmRepository;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Get a fresh copy of the latest source from the configured scm url.
+ *
+ * @author <a href="evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ * @goal list
+ * @description List files in project
+ */
+public class ListMojo
+    extends AbstractScmMojo
+{
+    /**
+     * Branch name.
+     *
+     * @parameter expression="${branch}"
+     */
+    private String branch;
+
+    /**
+     * The tag to use when checking out or tagging a project.
+     *
+     * @parameter expression="${tag}"
+     */
+    private String tag;
+
+    /**
+     * Use recursive mode.
+     *
+     * @parameter expression="${recursive}" default-value="true"
+     */
+    private boolean recursive = true;
+
+    public void execute()
+        throws MojoExecutionException, MojoFailureException
+    {
+        String currentTag = null;
+
+        if ( branch != null )
+        {
+            currentTag = branch;
+        }
+
+        if ( tag != null )
+        {
+            currentTag = tag;
+        }
+
+        try
+        {
+            ScmRepository repository = getScmRepository();
+            ListScmResult result = getScmManager().getProviderByRepository( repository ).list( repository, getFileSet(),
+                                                                                               recursive, currentTag );
+
+            checkResult( result );
+
+            if ( result.getFiles() != null )
+            {
+                for ( Iterator i = result.getFiles().iterator(); i.hasNext(); )
+                {
+                    ScmFile scmFile = (ScmFile) i.next();
+                    getLog().info( scmFile.getPath() );
+                }
+            }
+        }
+        catch ( ScmException e )
+        {
+            throw new MojoExecutionException( "Cannot run list command : ", e );
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Cannot run list command : ", e );
+        }
+    }
+
+    public ScmFileSet getFileSet()
+        throws IOException
+    {
+        if ( getIncludes() != null || getExcludes() != null )
+        {
+            return new ScmFileSet( getWorkingDirectory(), getIncludes(), getExcludes() );
+        }
+        else
+        {
+            return new ScmFileSet( getWorkingDirectory(), new File( "." ) );
+        }
+    }
+
+}
+

Propchange: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ListMojo.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java?view=diff&rev=517675&r1=517674&r2=517675
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java Tue Mar 13 05:52:30 2007
@@ -26,6 +26,7 @@
 import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.command.list.ListScmResult;
 import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
@@ -33,6 +34,7 @@
 import org.apache.maven.scm.provider.local.command.changelog.LocalChangeLogCommand;
 import org.apache.maven.scm.provider.local.command.checkin.LocalCheckInCommand;
 import org.apache.maven.scm.provider.local.command.checkout.LocalCheckOutCommand;
+import org.apache.maven.scm.provider.local.command.list.LocalListCommand;
 import org.apache.maven.scm.provider.local.command.update.LocalUpdateCommand;
 import org.apache.maven.scm.provider.local.repository.LocalScmProviderRepository;
 import org.apache.maven.scm.repository.ScmRepository;
@@ -179,6 +181,28 @@
         command.setLogger( getLogger() );
 
         return (CheckOutScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * List each element (files and directories) of <B>fileSet</B> as they exist in the repository.
+     *
+     * @param repository the source control system
+     * @param fileSet    the files to list
+     * @param parameters
+     * @return The list of files in the repository
+     * @throws org.apache.maven.scm.NoSuchCommandScmException
+     *          unless overriden by subclass
+     * @throws org.apache.maven.scm.ScmException
+     *
+     */
+    protected ListScmResult list( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        LocalListCommand command = new LocalListCommand();
+
+        command.setLogger( getLogger() );
+
+        return (ListScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
     /**

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java?view=auto&rev=517675
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java Tue Mar 13 05:52:30 2007
@@ -0,0 +1,143 @@
+package org.apache.maven.scm.provider.local.command.list;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.command.list.AbstractListCommand;
+import org.apache.maven.scm.command.list.ListScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.local.repository.LocalScmProviderRepository;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class LocalListCommand
+    extends AbstractListCommand
+{
+    /**
+     * List contents of the remote repository
+     *
+     * @param repo      what to list
+     * @param fileSet   the files to list
+     * @param recursive whether list should return subfolder listing
+     * @return the list of files
+     * @throws org.apache.maven.scm.ScmException
+     *
+     */
+    protected ListScmResult executeListCommand( ScmProviderRepository repo, ScmFileSet fileSet, boolean recursive,
+                                                String tag )
+        throws ScmException
+    {
+        if ( !StringUtils.isEmpty( tag ) )
+        {
+            throw new ScmException( "The local scm doesn't support tags." );
+        }
+
+        LocalScmProviderRepository repository = (LocalScmProviderRepository) repo;
+
+        File root = new File( repository.getRoot() );
+
+        String module = repository.getModule();
+
+        File source = new File( root, module );
+
+        if ( !root.exists() )
+        {
+            throw new ScmException( "The base directory doesn't exist (" + root.getAbsolutePath() + ")." );
+        }
+
+        if ( !source.exists() )
+        {
+            throw new ScmException( "The module directory doesn't exist (" + source.getAbsolutePath() + ")." );
+        }
+
+        getLogger().info( "Listing files of '" + source.getAbsolutePath() + "'." );
+
+        try
+        {
+            if ( fileSet.getFileList() == null || fileSet.getFileList().isEmpty() )
+            {
+                return new LocalListScmResult( null, getFiles( source, source, recursive ) );
+            }
+            else
+            {
+                List files = new ArrayList();
+                Iterator it = fileSet.getFileList().iterator();
+
+                while ( it.hasNext() )
+                {
+                    File file = (File) it.next();
+
+                    files.addAll( getFiles( source, new File( source, file.getPath() ), recursive ) );
+                }
+
+                return new LocalListScmResult( null, files );
+            }
+        }
+        catch ( Exception e )
+        {
+            return new ListScmResult( null, "The svn command failed.", e.getMessage(), false );
+        }
+    }
+
+    private List getFiles( File source, File directory, boolean recursive )
+        throws Exception
+    {
+        if ( !directory.exists() )
+        {
+            throw new Exception( "Directory '" + directory.getAbsolutePath() + "' doesn't exist." );
+        }
+
+        List files = new ArrayList();
+
+        File[] filesArray = directory.listFiles();
+
+        if ( filesArray != null )
+        {
+            for ( int i = 0; i < filesArray.length; i++ )
+            {
+                File f = filesArray[i];
+
+                String path = f.getAbsolutePath().substring( source.getAbsolutePath().length() );
+                path = StringUtils.replace( path, "\\", "/" );
+                path = StringUtils.replace( path, "/./", "/" );
+
+                files.add( new ScmFile( path, ScmFileStatus.CHECKED_IN ) );
+
+                if ( f.isDirectory() && recursive )
+                {
+                    files.addAll( getFiles( source, f, recursive ) );
+                }
+            }
+        }
+
+        return files;
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListCommand.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java?view=auto&rev=517675
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java Tue Mar 13 05:52:30 2007
@@ -0,0 +1,18 @@
+package org.apache.maven.scm.provider.local.command.list;
+
+import org.apache.maven.scm.command.list.ListScmResult;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class LocalListScmResult
+    extends ListScmResult
+{
+    public LocalListScmResult( String commandLine, List files )
+    {
+        super( commandLine, files);
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/list/LocalListScmResult.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/list/LocalListCommandTckTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/list/LocalListCommandTckTest.java?view=auto&rev=517675
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/list/LocalListCommandTckTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/list/LocalListCommandTckTest.java Tue Mar 13 05:52:30 2007
@@ -0,0 +1,56 @@
+package org.apache.maven.scm.provider.local.command.list;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.scm.tck.command.list.ListCommandTckTest;
+
+import java.io.File;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class LocalListCommandTckTest
+    extends ListCommandTckTest
+{
+    private String module = "check-out";
+
+    public String getScmUrl()
+        throws Exception
+    {
+        return "scm:local|" + getRepositoryRoot().getAbsolutePath() + "|" + module;
+    }
+
+    public void initRepo()
+        throws Exception
+    {
+        File root = new File( getRepositoryRoot() + "/" + module );
+
+        makeFile( root, "/pom.xml" );
+
+        makeFile( root, "/readme.txt" );
+
+        makeFile( root, "/src/main/java/Application.java" );
+
+        makeFile( root, "/src/test/java/Test.java" );
+
+        makeDirectory( root, "/src/test/resources" );
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/list/LocalListCommandTckTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/list/LocalListCommandTckTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java?view=diff&rev=517675&r1=517674&r2=517675
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java Tue Mar 13 05:52:30 2007
@@ -27,28 +27,33 @@
 import org.apache.maven.scm.provider.cvslib.command.CvsCommand;
 import org.apache.maven.scm.provider.cvslib.command.CvsCommandUtils;
 import org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository;
+import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.Commandline;
 
 /**
- *
  * @author <a href="mailto:kenney@apache.org">Kenney Westerhof</a>
- *
  */
 public abstract class AbstractCvsListCommand
     extends AbstractListCommand
     implements CvsCommand
 {
-    protected ListScmResult executeListCommand( ScmProviderRepository repo, ScmFileSet fileSet,
-                                                boolean recursive )
+    protected ListScmResult executeListCommand( ScmProviderRepository repo, ScmFileSet fileSet, boolean recursive,
+                                                String tag )
         throws ScmException
     {
         CvsScmProviderRepository repository = (CvsScmProviderRepository) repo;
 
         Commandline cl = CvsCommandUtils.getBaseCommand( "rls", repository, fileSet, "-n" );
 
+        if ( !StringUtils.isEmpty( tag ) )
+        {
+            cl.createArgument().setValue( "-r" );
+            cl.createArgument().setValue( tag );
+        }
+
         cl.createArgument().setValue( "-d" );
 
-        if ( recursive  )
+        if ( recursive )
         {
             cl.createArgument().setValue( "-R" );
         }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommand.java?view=diff&rev=517675&r1=517674&r2=517675
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnListCommand.java Tue Mar 13 05:52:30 2007
@@ -47,11 +47,11 @@
 {
     private static final File TMP_DIR = new File( System.getProperty( "java.io.tmpdir" ) );
 
-    protected ListScmResult executeListCommand( ScmProviderRepository repository, ScmFileSet fileSet,
-                                                boolean recursive )
+    protected ListScmResult executeListCommand( ScmProviderRepository repository, ScmFileSet fileSet, boolean recursive,
+                                                String revision )
         throws ScmException
     {
-        Commandline cl = createCommandLine( (SvnScmProviderRepository) repository, fileSet, recursive, null );
+        Commandline cl = createCommandLine( (SvnScmProviderRepository) repository, fileSet, recursive, revision );
 
         SvnListConsumer consumer = new SvnListConsumer();