ach und weil ich gerade dabei bin... die können gleichmal diesen bug mit beheben (im patch_parser):
PHP-Code:
$old_file_bits = explode("\t", $old_file);
if (sizeof($old_file_bits) == 1)
{
$old_file_bits = preg_split('#\s+#', $old_file);
}
$new_file_bits = explode("\t", $new_file);
if (sizeof($new_file_bits) == 1)
{
$new_file_bits = preg_split('#\s+#', $new_file);
}
// create holder for this file's chunks
$this->files[] = array(
'old' => array(
'filename' => $old_file_bits[0],
'date' => $old_file_bits[1],
'revision' => $old_file_bits[2]
),
'new' => array(
'filename' => $new_file_bits[0],
'date' => $new_file_bits[1],
'revision' => $new_file_bits[2]
),
'chunks' => array()
);
$old_file_bits[2] und $new_file_bits[2] werden bei svn-diffs immer warnungen erzeugen und die revision leer sein, denn die zeile lautet so:
--- trunk/test/diff_3.txtTAB2008-10-03 21:39:28 UTCSPACE(rev 4048)
das explode liefert hier also nur 2 array-teile. im 2. ist dann die uhrzeit und die revision enthalten.
lt. den erhältlichen dokumentationen zu diff, ist nur sicher, dass der 2. teil der timestamp ist. alles danach ist optional (zb. eine revisionsangabe). möglicherweise haben die mit cvs-diffs gearbeitet, wo die revisionsnummer einem TAB folgt.
wie auch immer, es funktioniert nicht wie es soll
Lesezeichen