| version 1.12, 2002/06/03 07:49:08 |
version 1.13, 2002/06/03 10:38:15 |
|
|
| $output_file = 'php://stdout';
|
$output_file = 'php://stdout';
|
|
|
|
| $begin_line = '----------------------------------------------';
|
$begin_line = '----------------------------------------------';
|
| |
$msg_log_begin = '^Log Message:';
|
| |
$date_format = '^([A-Z][a-z]{2} )?([A-Z][a-z]{2} [0-9]+ ' .
|
| |
'[0-9]{2}:[0-9]{2}:[0-9]{2}) CES?T ([0-9]{4})';
|
| |
$user_format = '^CVSUSER=([0-9a-zA-Z]*)';
|
| |
$directory_format = '^In directory';
|
| |
$project_name_format = '^Update of /home/cvs/(.*)';
|
| |
$add_files_begin = '^Added Files:';
|
| |
$mod_files_begin = '^Modified Files:';
|
| |
$del_files_begin = '^Removed Files:';
|
| |
$in_file_list = "^(\t| )";
|
|
|
|
| function my_array_walk($x) {
|
function my_array_walk($x) {
|
| // This will do array_unique() on third-level values of $x
|
// This will do array_unique() on third-level values of $x
|
|
|
| $in_del_files = false;
|
$in_del_files = false;
|
|
|
|
| while ($i < sizeof($in)) {
|
while ($i < sizeof($in)) {
|
| |
// BEGIN NEW COMMIT
|
| if (ereg($begin_line, $in[$i])) {
|
if (ereg($begin_line, $in[$i])) {
|
| $j++;
|
$j++;
|
| }
|
}
|
|
|
|
| // LOG MESSAGE
|
// LOG MESSAGE
|
| |
if (ereg($msg_log_begin, $in[$i])) {
|
| |
$in_msg_log = true;
|
| |
$i++;
|
| |
continue;
|
| |
}
|
| |
|
| if ($in_msg_log) {
|
if ($in_msg_log) {
|
| if (ereg($begin_line, $in[$i])) {
|
if (ereg($begin_line, $in[$i])) {
|
| $in_msg_log = false;
|
$in_msg_log = false;
|
|
|
| }
|
}
|
| }
|
}
|
|
|
|
| if (ereg('^Log Message:', $in[$i])) {
|
// ADDED FILES
|
| $in_msg_log = true;
|
if (ereg($add_files_begin, $in[$i])) {
|
| |
$in_add_files = true;
|
| $i++;
|
$i++;
|
| continue;
|
continue;
|
| }
|
}
|
|
|
|
| // ADDED FILES
|
|
| if ($in_add_files) {
|
if ($in_add_files) {
|
| if (!ereg("^(\t| )", $in[$i])) {
|
if (!ereg($in_file_list, $in[$i])) {
|
| $in_add_files = false;
|
$in_add_files = false;
|
| continue;
|
continue;
|
| }
|
}
|
|
|
| array_merge($reports[$j]['added'],
|
array_merge($reports[$j]['added'],
|
| explode(' ', trim($in[$i])));
|
explode(' ', trim($in[$i])));
|
| }
|
}
|
|
|
|
| if (ereg('^Added Files:', $in[$i])) {
|
// MODIFIED FILES
|
| $in_add_files = true;
|
if (ereg($mod_files_begin, $in[$i])) {
|
| |
$in_mod_files = true;
|
| $i++;
|
$i++;
|
| continue;
|
continue;
|
| }
|
}
|
|
|
|
| // MODIFIED FILES
|
|
| if ($in_mod_files) {
|
if ($in_mod_files) {
|
| if (!ereg("^(\t| )", $in[$i])) {
|
if (!ereg($in_file_list, $in[$i])) {
|
| echo "!";
|
|
| $in_mod_files = false;
|
$in_mod_files = false;
|
| continue;
|
continue;
|
| }
|
}
|
|
|
| explode(' ', trim($in[$i])));
|
explode(' ', trim($in[$i])));
|
| }
|
}
|
|
|
|
| if (ereg('^Modified Files:', $in[$i])) {
|
// DELETED FILES
|
| $in_mod_files = true;
|
if (ereg($del_files_begin, $in[$i])) {
|
| |
$in_del_files = true;
|
| $i++;
|
$i++;
|
| continue;
|
continue;
|
| }
|
}
|
|
|
|
| // DELETED FILES
|
|
| if ($in_del_files) {
|
if ($in_del_files) {
|
| if (!ereg("^(\t| )", $in[$i])) {
|
if (!ereg($in_file_list, $in[$i])) {
|
| $in_del_files = false;
|
$in_del_files = false;
|
| continue;
|
continue;
|
| }
|
}
|
|
|
| explode(' ', trim($in[$i])));
|
explode(' ', trim($in[$i])));
|
| }
|
}
|
|
|
|
| if (ereg('^Removed Files:', $in[$i])) {
|
|
| $in_del_files = true;
|
|
| }
|
|
|
|
|
| // DATE //Accepted format: Mon May 20 18:06:09 CEST 2002
|
// DATE //Accepted format: Mon May 20 18:06:09 CEST 2002
|
| if (ereg('^([A-Z][a-z]{2} )?([A-Z][a-z]{2} [0-9]+ ' .
|
if (ereg($date_format, $in[$i], $regs)) {
|
| '[0-9]{2}:[0-9]{2}:[0-9]{2}) CES?T ([0-9]{4})',
|
|
| $in[$i], $regs)) {
|
|
| $reports[$j]['date'][] = $regs[2] . ' ' . $regs[3];
|
$reports[$j]['date'][] = $regs[2] . ' ' . $regs[3];
|
| }
|
}
|
|
|
|
| // USERS
|
// USERS
|
| if (ereg('^CVSUSER=([0-9a-zA-Z]*)', $in[$i], $regs)) {
|
if (ereg($user_format, $in[$i], $regs)) {
|
| $reports[$j]['users'][] = $regs[1];
|
$reports[$j]['users'][] = $regs[1];
|
| }
|
}
|
|
|
|
| // DIRECTORY
|
// DIRECTORY
|
| if (ereg('^In directory', $in[$i])) {
|
if (ereg($directory_format, $in[$i])) {
|
| // This is redundant, simply ignoring it
|
// This is redundant, simply ignoring it
|
| }
|
}
|
|
|
|
| // NAME
|
// NAME
|
| if (ereg('^Update of /home/cvs/(.*)', $in[$i], $regs)) {
|
if (ereg($project_name_format, $in[$i], $regs)) {
|
| // only project name
|
// only project name
|
| $reports[$j]['name'] = trim(strtok($regs[1], '/'));
|
$reports[$j]['name'] = trim(strtok($regs[1], '/'));
|
| $reports[$j]['directory'] = trim($regs[1]);
|
$reports[$j]['directory'] = trim($regs[1]);
|
|
|
| $merged = array_merge_recursive($merged, $a);
|
$merged = array_merge_recursive($merged, $a);
|
| $i++;
|
$i++;
|
| }
|
}
|
| |
unset($i);
|
| |
unset($a);
|
|
|
|
| $merged_unique = my_array_walk($merged);
|
$merged_unique = my_array_walk($merged);
|
|
|
|
| |
// DEBUG
|
| //var_dump($reports);
|
//var_dump($reports);
|
| //var_dump($merged);
|
//var_dump($merged);
|
| //var_dump($merged_unique);
|
//var_dump($merged_unique);
|
|
|
|
| |
unset($reports);
|
| |
unset($merged);
|
| |
|
| $out = fopen($output_file, 'w');
|
$out = fopen($output_file, 'w');
|
|
|
|
| $keys = array_keys($merged_unique);
|
$keys = array_keys($merged_unique);
|
| $i = 0;
|
$i = 0;
|
| $name = '';
|
$name = '';
|
|
|
|
| |
// OUTPUT:
|
| // Print out the merged/unique to $out
|
// Print out the merged/unique to $out
|
|
|
|
| while ($i < sizeof($merged_unique)) {
|
while ($i < sizeof($merged_unique)) {
|