ScmRepository repository = getScmRepository();
ScmProvider provider = manager.getProviderByRepository( repository );
ChangeLogScmResult result;
if ( "range".equals( type ) )
{
result = provider.changeLog( repository, new ScmFileSet( basedir ), null, null, range, (ScmBranch) null,
dateFormat );
checkResult( result );
changeSets.add( result.getChangeLog() );
}
else if ( "tag".equals( type ) )
{
if ( repository.getProvider().equals( "svn" ) )
{
throw new MavenReportException( "The type '" + type + "' isn't supported for svn." );
}
Iterator<String> tagsIter = tags.iterator();
String startTag = tagsIter.next();
String endTag = null;
if ( tagsIter.hasNext() )
{
while ( tagsIter.hasNext() )
{
endTag = tagsIter.next();
result = provider.changeLog( repository, new ScmFileSet( basedir ), new ScmRevision( startTag ),
new ScmRevision( endTag ) );
checkResult( result );
changeSets.add( result.getChangeLog() );
startTag = endTag;
}
}
else
{
result = provider.changeLog( repository, new ScmFileSet( basedir ), new ScmRevision( startTag ),
new ScmRevision( endTag ) );
checkResult( result );
changeSets.add( result.getChangeLog() );
}
}
else if ( "date".equals( type ) )
{
Iterator<String> dateIter = dates.iterator();
String startDate = dateIter.next();
String endDate = null;
if ( dateIter.hasNext() )
{
while ( dateIter.hasNext() )
{
endDate = dateIter.next();
result = provider.changeLog( repository, new ScmFileSet( basedir ), parseDate( startDate ),
parseDate( endDate ), 0, (ScmBranch) null );
checkResult( result );
changeSets.add( result.getChangeLog() );
startDate = endDate;
}
}
else
{
result = provider.changeLog( repository, new ScmFileSet( basedir ), parseDate( startDate ),
parseDate( endDate ), 0, (ScmBranch) null );
checkResult( result );
changeSets.add( result.getChangeLog() );
}
}
else
{
throw new MavenReportException( "The type '" + type + "' isn't supported." );