Adding some helpful links, more still to come
[viewsvn.git] / diff.php
1 <?php
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # ViewSVN [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
7 || # This file may not be reproduced in any way without permission. # ||
8 || # --------------------------------------------------------------- # ||
9 || # User License Agreement at http://www.iris-studios.com/license/ # ||
10 || ################################################################### ||
11 \*=====================================================================*/
12
13 require_once('./global.php');
14
15 $path = $viewsvn->paths->parse();
16 $repos = $viewsvn->paths->fetch_repos($path);
17 $relpath = $viewsvn->paths->fetch_path($path);
18
19 echo $viewsvn->paths->construct_breadcrumb($path, false);
20
21 if (empty($viewsvn->in['high']))
22 {
23 $viewsvn->in['high'] = $viewsvn->svn->common->fetch_head_rev($path);
24 }
25
26 if (empty($viewsvn->in['low']))
27 {
28 $viewsvn->in['low'] = $viewsvn->svn->common->fetch_prev_rev($path, $viewsvn->in['high']);
29 }
30
31 $diff = new SVNDiff($repos, $relpath, $viewsvn->in['low'], $viewsvn->in['high']);
32
33 if ($viewsvn->svn->common->isdir($path))
34 {
35 $viewpg = 'browse';
36 }
37 else
38 {
39 $viewpg = 'view';
40 }
41
42 echo <<<HTML
43 <style type="text/css">
44 <!--
45
46 .diff_add
47 {
48 background-color: #99EE99;
49 }
50
51 .diff_del
52 {
53 background-color: #EE9999;
54 }
55
56 table
57 {
58 font: normal 11px monospace;
59 }
60
61 //-->
62 </style>
63 HTML;
64
65 foreach ($diff->fetch() AS $filename => $file)
66 {
67 echo '<h2>' . $filename . '</h2>';
68
69 foreach ($file AS $hunk)
70 {
71 echo '<table cellspacing="1" cellpadding="1" width="100%">';
72
73 foreach ($hunk AS $key => $line)
74 {
75 if ($key == 'hunk' AND isset($line['old']))
76 {
77 echo '
78 <tr style="background-color: #F7F7F7">
79 <td><a href="/viewsvn/' . $viewsvn->paths->out($viewpg . '.php?rev=' . $viewsvn->in['low'], $path) . '">r' . $viewsvn->in['low'] . '</a></td>
80 <td><a href="/viewsvn/' . $viewsvn->paths->out($viewpg . '.php?rev=' . $viewsvn->in['high'], $path) . '">r' . $viewsvn->in['high'] . '</a></td>
81 <td>&nbsp;</td>
82 </tr>';
83 continue;
84 }
85
86 if ($line['act'] == '+')
87 {
88 $color = '#DDFFDD';
89 }
90 else if ($line['act'] == '-')
91 {
92 $color = '#FFDDDD';
93 }
94 else
95 {
96 $color = 'white';
97 }
98
99 echo '
100 <tr style="background-color: #EEEEDD; border-width: 0px 1px 1px 0px">
101 <td>' . $line['oldlineno'] . '</td>
102 <td>' . $line['newlineno'] . '</td>
103 <td style="background-color: ' . $color . '">' . $viewsvn->svn->format($line['line']) . '</td>
104 </tr>';
105 }
106
107 echo '
108 </table>';
109 }
110
111 echo '<hr />';
112 }
113
114 /*=====================================================================*\
115 || ###################################################################
116 || # $HeadURL$
117 || # $Id$
118 || ###################################################################
119 \*=====================================================================*/
120 ?>