You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/06/13 22:49:43 UTC

svn commit: r1350009 - in /maven/scm/trunk: maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/ maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout...

Author: olamy
Date: Wed Jun 13 20:49:42 2012
New Revision: 1350009

URL: http://svn.apache.org/viewvc?rev=1350009&view=rev
Log:
[SCM-676] Add property "revision" to CheckOutScmResult
Submitted by Petr Kozelka.

Modified:
    maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/CheckOutScmResult.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/checkout/SvnCheckOutCommand.java
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutConsumerTest.java

Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/CheckOutScmResult.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/CheckOutScmResult.java?rev=1350009&r1=1350008&r2=1350009&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/CheckOutScmResult.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/checkout/CheckOutScmResult.java Wed Jun 13 20:49:42 2012
@@ -19,11 +19,11 @@ package org.apache.maven.scm.command.che
  * under the License.
  */
 
-import java.util.List;
-
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmResult;
 
+import java.util.List;
+
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
  * @author Olivier Lamy
@@ -37,6 +37,8 @@ public class CheckOutScmResult
 
     private List<ScmFile> checkedOutFiles;
 
+    private String revision;
+
     /**
      * The relative path of the directory of the checked out project in comparison to the checkout directory, or
      * an empty String in case the checkout directory equals the project directory.
@@ -56,14 +58,27 @@ public class CheckOutScmResult
 
     public CheckOutScmResult( String commandLine, List<ScmFile> checkedOutFiles )
     {
+        this( commandLine, null, checkedOutFiles );
+    }
+
+    public CheckOutScmResult( String commandLine, String revision, List<ScmFile> checkedOutFiles )
+    {
         super( commandLine, null, null, true );
 
+        this.revision = revision;
+
         this.checkedOutFiles = checkedOutFiles;
     }
 
     public CheckOutScmResult( String commandLine, List<ScmFile> checkedOutFiles, String relativePathProjectDirectory )
     {
-        this( commandLine, checkedOutFiles );
+        this( commandLine, null, checkedOutFiles );
+    }
+
+    public CheckOutScmResult( String commandLine, String revision, List<ScmFile> checkedOutFiles,
+                              String relativePathProjectDirectory )
+    {
+        this( commandLine, revision, checkedOutFiles );
 
         if ( relativePathProjectDirectory != null )
         {
@@ -91,4 +106,15 @@ public class CheckOutScmResult
     {
         return relativePathProjectDirectory;
     }
+
+    /**
+     * Checked-out revision.
+     * SCM's that have no revision per repository (or branch) should store <code>null</code> here.
+     *
+     * @return the revision that was checked out.
+     */
+    public String getRevision()
+    {
+        return revision;
+    }
 }

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/checkout/SvnCheckOutCommand.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/checkout/SvnCheckOutCommand.java?rev=1350009&r1=1350008&r2=1350009&view=diff
==============================================================================
--- 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/checkout/SvnCheckOutCommand.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/checkout/SvnCheckOutCommand.java Wed Jun 13 20:49:42 2012
@@ -49,7 +49,9 @@ public class SvnCheckOutCommand
     extends AbstractCheckOutCommand
     implements SvnCommand
 {
-    /** {@inheritDoc} */
+    /**
+     * {@inheritDoc}
+     */
     protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet fileSet,
                                                         ScmVersion version, boolean recursive )
         throws ScmException
@@ -100,7 +102,8 @@ public class SvnCheckOutCommand
             return new CheckOutScmResult( cl.toString(), "The svn command failed.", stderr.getOutput(), false );
         }
 
-        return new CheckOutScmResult( cl.toString(), consumer.getCheckedOutFiles() );
+        return new CheckOutScmResult( cl.toString(), Integer.toString( consumer.getRevision() ),
+                                      consumer.getCheckedOutFiles() );
     }
 
     // ----------------------------------------------------------------------
@@ -110,10 +113,10 @@ public class SvnCheckOutCommand
     /**
      * Create SVN check out command line in a recursive way.
      *
-     * @param repository not null
+     * @param repository       not null
      * @param workingDirectory not null
-     * @param version not null
-     * @param url not null
+     * @param version          not null
+     * @param url              not null
      * @return the SVN command line for the SVN check out.
      * @see #createCommandLine(SvnScmProviderRepository, File, ScmVersion, String, boolean)
      */
@@ -126,11 +129,11 @@ public class SvnCheckOutCommand
     /**
      * Create SVN check out command line.
      *
-     * @param repository not null
+     * @param repository       not null
      * @param workingDirectory not null
-     * @param version not null
-     * @param url not null
-     * @param recursive <code>true</code> if recursive check out is wanted, <code>false</code> otherwise.
+     * @param version          not null
+     * @param url              not null
+     * @param recursive        <code>true</code> if recursive check out is wanted, <code>false</code> otherwise.
      * @return the SVN command line for the SVN check out.
      * @since 1.1.1
      */

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutConsumerTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutConsumerTest.java?rev=1350009&r1=1350008&r2=1350009&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutConsumerTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnCheckOutConsumerTest.java Wed Jun 13 20:49:42 2012
@@ -22,6 +22,7 @@ package org.apache.maven.scm.provider.sv
 import java.io.File;
 
 import org.apache.maven.scm.log.ScmLogDispatcher;
+import org.junit.Assert;
 import org.junit.Test;
 
 public class SvnCheckOutConsumerTest
@@ -36,5 +37,9 @@ public class SvnCheckOutConsumerTest
         
         // SCM-618 StringIndexOutOfBoundsException
         consumer.parseLine( "A  " + file.getAbsolutePath() );
+
+        consumer.parseLine( "Checked out revision 1345915." );
+
+        Assert.assertEquals( 1345915, consumer.getRevision());
     }
 }
\ No newline at end of file