List<File> fileList = FileUtils.getFiles( source.getAbsoluteFile(), "**", null );
List<File> list = fileList;
updatedFiles = update( source, baseDestination, list );
// process deletions in repository
LocalScmMetadataUtils metadataUtils = new LocalScmMetadataUtils( getLogger() );
LocalScmMetadata originalMetadata = metadataUtils.readMetadata( baseDestination );
if ( originalMetadata != null )
{
LocalScmMetadata newMetadata = metadataUtils.buildMetadata( source );
for ( Iterator<String> it = originalMetadata.getRepositoryFileNames().iterator(); it.hasNext(); )
{
String filename = it.next();
if ( !newMetadata.getRepositoryFileNames().contains( filename ) )
{
File localFile = new File( baseDestination, filename );
if ( localFile.exists() )
{
localFile.delete();
updatedFiles.add( new ScmFile( "/" + filename, ScmFileStatus.UPDATED ) );
}
}
}
}
// rewrite metadata file
metadataUtils.writeMetadata( baseDestination, metadataUtils.buildMetadata( source ) );
}
catch ( IOException ex )
{
throw new ScmException( "Error while checking out the files.", ex );