Repository: maven-scm
Updated Branches:
  refs/heads/master 558d49694 -> 5c84faeea


[SCM-865] cvsnt detect rls -d support


Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/774603cf
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/774603cf
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/774603cf

Branch: refs/heads/master
Commit: 774603cf4ef6e81dcf4b939864e6a120419ccc56
Parents: 6f7dd0c
Author: Ilya Basin <basini...@gmail.com>
Authored: Sun Feb 18 11:09:26 2018 +0300
Committer: Ilya Basin <basini...@gmail.com>
Committed: Sun Feb 18 13:39:06 2018 +0300

----------------------------------------------------------------------
 .../command/list/AbstractCvsListCommand.java    | 29 +++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/774603cf/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
----------------------------------------------------------------------
diff --git 
a/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
 
b/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
index 5c7d1d0..ee98ff7 100644
--- 
a/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
+++ 
b/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
@@ -31,6 +31,7 @@ import org.apache.maven.scm.provider.ScmProviderRepository;
 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.Os;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.Commandline;
 
@@ -47,6 +48,29 @@ public abstract class AbstractCvsListCommand
                                                 ScmVersion version )
         throws ScmException
     {
+        for ( Boolean supD = rlsSUPPORTSD;; supD = Boolean.FALSE )
+        {
+            ListScmResult res = executeListCommand1( repo, fileSet, recursive, 
version, supD );
+            if ( res.isSuccess() || supD != null )
+            {
+                if ( rlsSUPPORTSD == null && res.isSuccess() )
+                {
+                    rlsSUPPORTSD = supD == null ? Boolean.TRUE : supD;
+                }
+                return res;
+            }
+            // first attempt failed, support unknown
+            // rls: invalid option -- d
+        }
+    }
+
+    // cvsnt does not support rls -d; Msys/Cygwin do.
+    private static Boolean rlsSUPPORTSD = Os.isFamily( Os.FAMILY_WINDOWS ) ? 
null : Boolean.TRUE;
+
+    private ListScmResult executeListCommand1( ScmProviderRepository repo, 
ScmFileSet fileSet, boolean recursive,
+            ScmVersion version, Boolean supD )
+    throws ScmException
+    {
         CvsScmProviderRepository repository = (CvsScmProviderRepository) repo;
 
         Commandline cl = CvsCommandUtils.getBaseCommand( "rls", repository, 
fileSet, "-n" );
@@ -57,7 +81,10 @@ public abstract class AbstractCvsListCommand
             cl.createArg().setValue( version.getName() );
         }
 
-        cl.createArg().setValue( "-d" );
+        if ( supD != Boolean.FALSE )
+        {
+            cl.createArg().setValue( "-d" );
+        }
         cl.createArg().setValue( "-e" ); // szakusov: to fix "Unknown file 
status" problem
 
         if ( recursive )

Reply via email to