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 )