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/07 14:48:38 UTC
svn commit: r375600 - in
/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src:
main/java/org/apache/maven/scm/provider/cvslib/command/
main/java/org/apache/maven/scm/provider/cvslib/command/checkout/
test/java/org/apache/maven/scm/provider/c...
Author: evenisse
Date: Tue Feb 7 05:48:03 2006
New Revision: 375600
URL: http://svn.apache.org/viewcvs?rev=375600&view=rev
Log:
o Check if cvs is CVSNT
o throws an exception if CVSNT and tag is a numeric tag because it isn't supported by CVSNT.
Added:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags.db (with props)
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/CvsCommandUtils.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckOutCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/CvsCommandUtils.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/CvsCommandUtils.java?rev=375600&r1=375599&r2=375600&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/CvsCommandUtils.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/CvsCommandUtils.java Tue Feb 7 05:48:03 2006
@@ -16,11 +16,14 @@
* limitations under the License.
*/
+import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository;
import org.apache.maven.scm.provider.cvslib.util.CvsUtil;
import org.apache.maven.scm.providers.cvslib.settings.Settings;
import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
import java.io.File;
@@ -34,6 +37,31 @@
{
private CvsCommandUtils()
{
+ }
+
+ public static boolean isCvsNT()
+ throws ScmException
+ {
+ Commandline cl = new Commandline();
+
+ cl.setExecutable( "cvs" );
+
+ cl.createArgument().setValue( "-v" );
+
+ CommandLineUtils.StringStreamConsumer stdout = new CommandLineUtils.StringStreamConsumer();
+
+ CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
+
+ try
+ {
+ CommandLineUtils.executeCommandLine( cl, stdout, stderr );
+ }
+ catch ( CommandLineException e )
+ {
+ throw new ScmException( "Error while executing command.", e );
+ }
+
+ return stdout.getOutput().indexOf( "CVSNT" ) >= 0;
}
public static Commandline getBaseCommand( String commandName, CvsScmProviderRepository repo, ScmFileSet fileSet )
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckOutCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckOutCommand.java?rev=375600&r1=375599&r2=375600&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckOutCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckOutCommand.java Tue Feb 7 05:48:03 2006
@@ -25,6 +25,7 @@
import org.apache.maven.scm.provider.cvslib.command.CvsCommandUtils;
import org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository;
import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineException;
import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
@@ -43,6 +44,30 @@
protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet fileSet, String tag )
throws ScmException
{
+ if ( CvsCommandUtils.isCvsNT() && !StringUtils.isEmpty( tag ) && Character.isDigit( tag.charAt( 0 ) ) )
+ {
+ String[] parts = StringUtils.split( tag, "." );
+
+ boolean numericalTag = true;
+
+ for ( int i = 0; i < parts.length; i++ )
+ {
+ try
+ {
+ Integer.parseInt( parts[i] );
+ }
+ catch ( NumberFormatException e )
+ {
+ numericalTag = false;
+ }
+ }
+
+ if (numericalTag)
+ {
+ throw new ScmException( "CVSNT doesn't support nuumeric directory tags for checkout.");
+ }
+ }
+
if ( fileSet.getBasedir().exists() )
{
try
@@ -61,7 +86,7 @@
cl.setWorkingDirectory( fileSet.getBasedir().getParentFile().getAbsolutePath() );
- if ( tag != null )
+ if ( !StringUtils.isEmpty( tag ) )
{
cl.createArgument().setValue( "-r" );
cl.createArgument().setValue( tag );
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java?rev=375600&r1=375599&r2=375600&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java Tue Feb 7 05:48:03 2006
@@ -76,7 +76,7 @@
ScmManager scmManager = getScmManager();
CheckOutScmResult result = scmManager.getProviderByRepository( getScmRepository() ).checkOut(
- getScmRepository(), getScmFileSet(), "1.107.4" );
+ getScmRepository(), getScmFileSet(), "MAVEN_1_0" );
if ( !result.isSuccess() )
{
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags?rev=375600&r1=375599&r2=375600&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags Tue Feb 7 05:48:03 2006
@@ -0,0 +1 @@
+MAVEN_1_0 y
Added: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags.db
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags.db?rev=375600&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/repository/CVSROOT/val-tags.db
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream