in src/com/intellij/vssSupport/VssChangeProvider.java [249:284]
private void analyzeWritableFiles( FilePath filePath, List<String> writableFiles )
{
final HashSet<String> newFiles = new HashSet<>();
if( writableFiles.size() == 0 )
return;
if( writableFiles.size() < PER_FILE_DIFF_MARGIN )
{
LOG.info( "-- ChangeProvider - Analyzing writable files on per-file basis" );
analyzeWritableFilesByStatus( writableFiles, newFiles, filesChanged, filesHijacked, filesObsolete );
}
else
{
LOG.info( "-- ChangeProvider - Analyzing writable files on the base of \"Directory\" command" );
analyzeWritableFilesByDirectory( filePath, writableFiles, newFiles, filesChanged, filesHijacked );
}
// For each new file check whether some subfolders structure above it
// is also new.
if( isBatchUpdate )
{
final List<String> newFolders = new ArrayList<>();
final HashSet<String> processedFolders = new HashSet<>();
for( String file : newFiles )
{
if (progress != null) {
progress.checkCanceled();
}
if( !isPathUnderProcessedFolders( processedFolders, file ))
analyzeParentFolderStructureForPresence( file, newFolders, processedFolders );
}
filesNew.addAll( newFolders );
}
filesNew.addAll( newFiles );
}