RCommitLog* Gource::determineFormat(std::string logfile) { debugLog("determineFormat()\n"); RCommitLog* clog; //git debugLog("trying git...\n"); clog = new GitCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //cvs exp debugLog("trying cvs-exp...\n"); clog = new CVSEXPCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //custom debugLog("trying custom...\n"); clog = new CustomLog(logfile); if(clog->checkFormat()) return clog; delete clog; return 0; }
RCommitLog* RLogMill::fetchLog(std::string& log_format) { RCommitLog* clog = 0; //if the log format is not specified and 'logfile' is a directory, recursively look for a version control repository. //this method allows for something strange like someone who having an svn repository inside a git repository //(in which case it would pick the svn directory as it would encounter that first) if(log_format.empty() && logfile != "-") { try { boost::filesystem::path repo_path(logfile); if(is_directory(repo_path)) { if(findRepository(repo_path, log_format)) { logfile = repo_path.string(); } } } catch(boost::filesystem::filesystem_error& error) { } } //we've been told what format to use if(log_format.size() > 0) { debugLog("log-format = %s", log_format.c_str()); if(log_format == "git") { clog = new GitCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; clog = new GitRawCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(log_format == "hg") { clog = new MercurialLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(log_format == "bzr") { clog = new BazaarLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(log_format == "cvs") { clog = new CVSEXPCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(log_format == "custom") { clog = new CustomLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(log_format == "apache") { clog = new ApacheCombinedLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(log_format == "svn") { clog = new SVNCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(log_format == "cvs2cl") { clog = new CVS2CLCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; } return 0; } // try different formats until one works //git debugLog("trying git..."); clog = new GitCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //mercurial debugLog("trying mercurial..."); clog = new MercurialLog(logfile); if(clog->checkFormat()) return clog; delete clog; //bzr debugLog("trying bzr..."); clog = new BazaarLog(logfile); if(clog->checkFormat()) return clog; delete clog; //git raw debugLog("trying git raw..."); clog = new GitRawCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //cvs exp debugLog("trying cvs-exp..."); clog = new CVSEXPCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //svn debugLog("trying svn..."); clog = new SVNCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //cvs2cl debugLog("trying cvs2cl..."); clog = new CVS2CLCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //custom debugLog("trying custom..."); clog = new CustomLog(logfile); if(clog->checkFormat()) return clog; delete clog; //apache debugLog("trying apache combined..."); clog = new ApacheCombinedLog(logfile); if(clog->checkFormat()) return clog; delete clog; return 0; }
RCommitLog* Gource::determineFormat(std::string logfile) { debugLog("determineFormat(%s)\n", logfile.c_str()); RCommitLog* clog = 0; //we've been told what format to use if(gGourceLogFormat.size() > 0) { debugLog("--log-format = %s\n", gGourceLogFormat.c_str()); if(gGourceLogFormat == "git") { clog = new GitCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; clog = new GitRawCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(gGourceLogFormat == "hg") { clog = new MercurialLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(gGourceLogFormat == "cvs") { clog = new CVSEXPCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(gGourceLogFormat == "custom") { clog = new CustomLog(logfile); if(clog->checkFormat()) return clog; delete clog; } if(gGourceLogFormat == "apache") { clog = new ApacheCombinedLog(logfile); if(clog->checkFormat()) return clog; delete clog; } return 0; } //git debugLog("trying git...\n"); clog = new GitCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //mercurial debugLog("trying mercurial...\n"); clog = new MercurialLog(logfile); if(clog->checkFormat()) return clog; delete clog; //git raw debugLog("trying git raw...\n"); clog = new GitRawCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //cvs exp debugLog("trying cvs-exp...\n"); clog = new CVSEXPCommitLog(logfile); if(clog->checkFormat()) return clog; delete clog; //custom debugLog("trying custom...\n"); clog = new CustomLog(logfile); if(clog->checkFormat()) return clog; delete clog; //apache debugLog("trying apache combined...\n"); clog = new ApacheCombinedLog(logfile); if(clog->checkFormat()) return clog; delete clog; return 0; }