public static Commandline createCommandLine()

in maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnUpdateCommand.java [96:140]


    public static Commandline createCommandLine(
            SvnScmProviderRepository repository, File workingDirectory, ScmVersion version) {
        Settings settings = SvnUtil.getSettings();

        String workingDir = workingDirectory.getAbsolutePath();

        if (settings.isUseCygwinPath()) {
            workingDir = settings.getCygwinMountPath() + "/" + workingDir;
            workingDir = StringUtils.replace(workingDir, ":", "");
            workingDir = StringUtils.replace(workingDir, "\\", "/");
        }

        if (version != null && StringUtils.isEmpty(version.getName())) {
            version = null;
        }

        Commandline cl = SvnCommandLineUtils.getBaseSvnCommandLine(workingDirectory, repository);

        if (version == null || SvnTagBranchUtils.isRevisionSpecifier(version)) {
            cl.createArg().setValue("update");

            if (version != null && StringUtils.isNotEmpty(version.getName())) {
                cl.createArg().setValue("-r");
                cl.createArg().setValue(version.getName());
            }

            cl.createArg().setValue(workingDir + "@");
        } else {
            if (version instanceof ScmBranch) {
                // The tag specified does not appear to be numeric, so assume it refers
                // to a branch/tag url and perform a switch operation rather than update
                cl.createArg().setValue("switch");
                if (version instanceof ScmTag) {
                    String tagUrl = SvnTagBranchUtils.resolveTagUrl(repository, (ScmTag) version);
                    cl.createArg().setValue(tagUrl + "@");
                } else {
                    String branchUrl = SvnTagBranchUtils.resolveBranchUrl(repository, (ScmBranch) version);
                    cl.createArg().setValue(branchUrl + "@");
                }
                cl.createArg().setValue(workingDir + "@");
            }
        }

        return cl;
    }