Changeset 138 for trunk/lib/Stats.cc
- Timestamp:
- Aug 3, 2006, 11:40:15 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Stats.cc
r131 r138 26 26 27 27 #include "GnuplotFE.h" 28 #include "SVNblame.h" 28 29 #include "SVNinfo.h" 29 30 #include "utility.h" … … 32 33 #include <cassert> 33 34 #include <cstdlib> 34 #include <fstream>35 35 #include <iostream> 36 36 #include <map> 37 37 #include <numeric> 38 38 #include <string> 39 #include <sstream> 39 40 #include <unistd.h> 40 41 #include <utility> … … 86 87 87 88 void Stats::add(const std::string& user, const u_int& rev, 88 const Parser::line_type lt)89 const Parser::line_type& lt) 89 90 { 90 91 authors_.insert(user); … … 127 128 bool Stats::parse(const std::string& path) 128 129 { 129 // Calling svn blame 130 if (blame(path)) 131 return true; 132 133 // Check if file is binary 134 std::ifstream is("/tmp/svnstat.tmp"); 135 std::string line; 136 getline(is,line,' '); 137 if (line==std::string("Skipping")){ 138 getline(is,line,' '); 139 if (line==std::string("binary")){ 140 is.close(); 141 return true; 142 } 143 } 144 is.close(); 130 SVNblame svn_blame(path); 131 if (svn_blame.binary()) 132 return true; 145 133 146 134 Parser parser(path); 147 135 std::vector<Parser::line_type>::const_iterator count=parser.type().begin(); 148 136 149 is.open("/tmp/svnstat.tmp"); 150 while (getline(is,line, '\n')){ 151 if (!line.size()) // skip empty line 137 while (const SVNblame::blame_information * bi=svn_blame.next()) { 138 if (!bi->line.size()) { // skip empty line 139 ++count; // keep Parser information in sync with Stats parsing 152 140 continue; 153 std::stringstream ss(line); 154 u_int revision; 155 std::string user; 156 ss >> revision; 157 ss >> user; 141 } 158 142 // to handle symbolic links 159 143 if (count==parser.type().end()) 160 add( user,revision, Parser::empty);144 add(bi->author, bi->revision, Parser::empty); 161 145 else 162 add( user,revision, *count);146 add(bi->author, bi->revision, *count); 163 147 count++; 164 } 165 is.close(); 148 } 166 149 167 150 return false;
Note: See TracChangeset
for help on using the changeset viewer.