ReleaseResult relResult = new ReleaseResult();
logInfo( relResult, "Updating local copy against the scm..." );
ScmRepository repository;
ScmProvider provider;
try
{
repository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
provider = scmRepositoryConfigurator.getRepositoryProvider( repository );
}
catch ( ScmRepositoryException e )
{
throw new ReleaseScmRepositoryException(
e.getMessage() + " for URL: " + releaseDescriptor.getScmSourceUrl(), e.getValidationMessages() );
}
catch ( NoSuchScmProviderException e )
{
throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
}
UpdateScmResult updateScmResult = null;
CheckOutScmResult checkOutScmResult = null;
File workingDirectory = new File( releaseDescriptor.getWorkingDirectory() );
try
{
if ( !workingDirectory.exists() )
{
workingDirectory.mkdirs();
}
if( workingDirectory.listFiles().length > 1 )
{
updateScmResult = provider.update( repository, new ScmFileSet( workingDirectory ), (ScmVersion) null );
}
else
{
checkOutScmResult = provider.checkOut( repository, new ScmFileSet( workingDirectory ) );
}
}
catch ( ScmException e )
{
throw new ReleaseExecutionException( "An error occurred while updating your local copy: " + e.getMessage(),