public static void main(String[] args) throws Exception {
		Options plumeOptions = new Options(TestIsolationDataReader.usage_string, TestIsolationDataReader.class);
	    plumeOptions.parse_or_usage(args);
	
	    // Display the help screen.
	    if (showHelp) {
	        plumeOptions.print_usage();
	        return;
	    }
	    
	    if (numMixedRevisions > 0) {
	    	
	    	if (projName == null || repoPath == null || clonedRepoPath == null) {
		    	plumeOptions.print_usage();
		    	return;
		    }
	    	
	    	File repoDir = new File(repoPath);
		    File clonedRepoDir = new File(clonedRepoPath);
		    
		    BuildStrategy buildStrategy = null;
	        BuildStrategy clonedBuildStrategy = null;
	        
	        if (projName.equals(TestIsolationDataGenerator.VOLDEMORT)) {
	        	buildStrategy = new VoldemortBuildStrategy(repoDir, buildCommand);
	        	clonedBuildStrategy = new VoldemortBuildStrategy(clonedRepoDir, buildCommand);
	        } else if (projName.equals(TestIsolationDataGenerator.JODA_TIME)) {
	        	buildStrategy = new JodatimeBuildStrateygy(repoDir, buildCommand);
	        	clonedBuildStrategy = new JodatimeBuildStrateygy(clonedRepoDir, buildCommand);
	        }
	        
	        assert buildStrategy != null && clonedBuildStrategy != null;
	        
	        Repository repository = new GitRepository(repoDir, buildStrategy);
	        Repository clonedRepository = new GitRepository(clonedRepoDir, clonedBuildStrategy);
		    
	    	List<MixedRevisionTemplate> mixedRevisionTemplates = Util.readMixedRevisionTemplates();
	    	
	    	MixedRevisionsGenerator generator = 
	    		new MixedRevisionsGenerator(mixedRevisionTemplates, repository, clonedRepository);
	    	
	    	generator.constructSimpleMixedRevisions(startIndex, numMixedRevisions);
	    } else {
	    	
	    	if (hGraphXML == null) {
		    	plumeOptions.print_usage();
		    	return;
		    }
	    	
	    	HistoryGraphXMLReader reader = new HistoryGraphXMLReader(new File(hGraphXML));
		    HistoryGraph historyGraph = reader.reconstructHistoryGraph();
		    
		    MixedRevisionTemplatesGenerator templatesGenerator = 
		    	new MixedRevisionTemplatesGenerator(historyGraph);
		    
		    templatesGenerator.generateMixedRevisionTemplates();
		    templatesGenerator.writeOutMixedRevisionTemplates();
	    }
	}