private ChangeLogScmResult executeChangeLogCommand()

in maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogCommand.java [118:167]


    private ChangeLogScmResult executeChangeLogCommand(
            ScmProviderRepository repo,
            ScmFileSet fileSet,
            Date startDate,
            Date endDate,
            ScmBranch branch,
            String datePattern,
            ScmVersion startVersion,
            ScmVersion endVersion,
            Integer limit)
            throws ScmException {
        Commandline cl = createCommandLine(
                (SvnScmProviderRepository) repo,
                fileSet.getBasedir(),
                branch,
                startDate,
                endDate,
                startVersion,
                endVersion,
                limit);

        SvnChangeLogConsumer consumer = new SvnChangeLogConsumer(datePattern);

        CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();

        if (logger.isInfoEnabled()) {
            logger.info("Executing: " + SvnCommandLineUtils.cryptPassword(cl));

            if (Os.isFamily(Os.FAMILY_WINDOWS)) {
                logger.info("Working directory: " + cl.getWorkingDirectory().getAbsolutePath());
            }
        }

        int exitCode;

        try {
            exitCode = SvnCommandLineUtils.execute(cl, consumer, stderr);
        } catch (CommandLineException ex) {
            throw new ScmException("Error while executing svn command.", ex);
        }

        if (exitCode != 0) {
            return new ChangeLogScmResult(cl.toString(), "The svn command failed.", stderr.getOutput(), false);
        }
        ChangeLogSet changeLogSet = new ChangeLogSet(consumer.getModifications(), startDate, endDate);
        changeLogSet.setStartVersion(startVersion);
        changeLogSet.setEndVersion(endVersion);

        return new ChangeLogScmResult(cl.toString(), changeLogSet);
    }