some changes ...
authorpk910 <philipp@zoelle1.de>
Fri, 8 Mar 2013 03:05:41 +0000 (04:05 +0100)
committerpk910 <philipp@zoelle1.de>
Fri, 8 Mar 2013 03:05:41 +0000 (04:05 +0100)
.htaccess
htdocs/gitweb.css [deleted file]
htdocs/lib/ContentProvider.class.php
htdocs/lib/PageClasses.diff.class.php
htdocs/lib/PageClasses.difftree.class.php
htdocs/templates/default/commit.tpl
htdocs/templates/default/commitdiff.tpl
htdocs/templates/default/gitweb.css [new file with mode: 0644]
htdocs/templates/default/main.tpl

index bb612c591461c30270216ff4a8a114568902cc25..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
--- a/.htaccess
+++ b/.htaccess
@@ -1,3 +0,0 @@
-RewriteEngine On
-RewriteCond %{REQUEST_URI} !htdocs/
-RewriteRule (.*) /htdocs/$1 [L]
\ No newline at end of file
diff --git a/htdocs/gitweb.css b/htdocs/gitweb.css
deleted file mode 100644 (file)
index a2b59f1..0000000
+++ /dev/null
@@ -1,612 +0,0 @@
-body {
-       font-family: sans-serif;
-       font-size: small;
-       border: solid #d9d8d1;
-       border-width: 1px;
-       margin: 10px;
-       background-color: #ffffff;
-       color: #000000;
-}
-
-a {
-       color: #0000cc;
-}
-
-a:hover, a:visited, a:active {
-       color: #880000;
-}
-
-span.cntrl {
-       border: dashed #aaaaaa;
-       border-width: 1px;
-       padding: 0px 2px 0px 2px;
-       margin:  0px 2px 0px 2px;
-}
-
-img.logo {
-       float: right;
-       border-width: 0px;
-}
-
-img.avatar {
-       vertical-align: middle;
-}
-
-a.list img.avatar {
-       border-style: none;
-}
-
-div.page_header {
-       height: 25px;
-       padding: 8px;
-       font-size: 150%;
-       font-weight: bold;
-       background-color: #d9d8d1;
-}
-
-div.page_header a:visited, a.header {
-       color: #0000cc;
-}
-
-div.page_header a:hover {
-       color: #880000;
-}
-
-div.page_nav {
-       padding: 8px;
-}
-
-div.page_nav a:visited {
-       color: #0000cc;
-}
-
-div.page_path {
-       padding: 8px;
-       font-weight: bold;
-       border: solid #d9d8d1;
-       border-width: 0px 0px 1px;
-}
-
-div.page_footer {
-       height: 17px;
-       padding: 4px 8px;
-       background-color: #d9d8d1;
-}
-
-div.page_footer_text {
-       float: left;
-       color: #555555;
-       font-style: italic;
-}
-
-div#generating_info {
-       margin: 4px;
-       font-size: smaller;
-       text-align: center;
-       color: #505050;
-}
-
-div.page_body {
-       padding: 8px;
-       font-family: monospace;
-}
-
-div.title, a.title {
-       display: block;
-       padding: 6px 8px;
-       font-weight: bold;
-       background-color: #edece6;
-       text-decoration: none;
-       color: #000000;
-}
-
-div.readme {
-       padding: 8px;
-}
-
-a.title:hover {
-       background-color: #d9d8d1;
-}
-
-div.title_text {
-       padding: 6px 0px;
-       border: solid #d9d8d1;
-       border-width: 0px 0px 1px;
-       font-family: monospace;
-}
-
-div.log_body {
-       padding: 8px 8px 8px 150px;
-}
-
-span.age {
-       position: relative;
-       float: left;
-       width: 142px;
-       font-style: italic;
-}
-
-span.signoff {
-       color: #888888;
-}
-
-div.log_link {
-       padding: 0px 8px;
-       font-size: 70%;
-       font-family: sans-serif;
-       font-style: normal;
-       position: relative;
-       float: left;
-       width: 136px;
-}
-
-div.list_head {
-       padding: 6px 8px 4px;
-       border: solid #d9d8d1;
-       border-width: 1px 0px 0px;
-       font-style: italic;
-}
-
-.author_date, .author {
-       font-style: italic;
-}
-
-div.author_date {
-       padding: 8px;
-       border: solid #d9d8d1;
-       border-width: 0px 0px 1px 0px;
-}
-
-a.list {
-       text-decoration: none;
-       color: #000000;
-}
-
-a.subject, a.name {
-       font-weight: bold;
-}
-
-table.tags a.subject {
-       font-weight: normal;
-}
-
-a.list:hover {
-       text-decoration: underline;
-       color: #880000;
-}
-
-a.text {
-       text-decoration: none;
-       color: #0000cc;
-}
-
-a.text:visited {
-       text-decoration: none;
-       color: #880000;
-}
-
-a.text:hover {
-       text-decoration: underline;
-       color: #880000;
-}
-
-table {
-       padding: 8px 4px;
-       border-spacing: 0;
-}
-
-table.shortlog td {
-    padding: 0px 8px;
-    vertical-align: middle;
-    height:20px;
-}
-
-img.graph {
-    padding: 0px;
-    margin: 0px;
-    display: block;
-}
-
-table.diff_tree {
-       font-family: monospace;
-}
-
-table.combined.diff_tree th {
-       text-align: center;
-}
-
-table.combined.diff_tree td {
-       padding-right: 24px;
-}
-
-table.combined.diff_tree th.link,
-table.combined.diff_tree td.link {
-       padding: 0px 2px;
-}
-
-table.combined.diff_tree td.nochange a {
-       color: #6666ff;
-}
-
-table.combined.diff_tree td.nochange a:hover,
-table.combined.diff_tree td.nochange a:visited {
-       color: #d06666;
-}
-
-table.blame {
-       border-collapse: collapse;
-}
-
-table.blame td {
-       padding: 0px 5px;
-       font-size: 100%;
-       vertical-align: top;
-}
-
-th {
-       padding: 2px 5px;
-       font-size: 100%;
-       text-align: left;
-}
-
-/* do not change row style on hover for 'blame' view */
-tr.light,
-table.blame .light:hover {
-       background-color: #ffffff;
-}
-
-tr.dark,
-table.blame .dark:hover {
-       background-color: #f6f6f0;
-}
-
-tr.header {
-    background-color: #d9d8d1;
-}
-
-tr.header td {
-    vertical-align: center;
-}
-
-/* currently both use the same, but it can change */
-tr.light:hover,
-tr.dark:hover {
-       background-color: #edece6;
-}
-
-/* boundary commits in 'blame' view */
-/* and commits without "previous" */
-tr.boundary td.sha1,
-tr.no-previous td.linenr {
-       font-weight: bold;
-}
-
-/* for 'blame_incremental', during processing */
-tr.color1 { background-color: #f6fff6; }
-tr.color2 { background-color: #f6f6ff; }
-tr.color3 { background-color: #fff6f6; }
-
-td {
-       padding: 2px 5px;
-       font-size: 100%;
-       vertical-align: top;
-}
-
-td.link, td.selflink {
-       padding: 2px 5px;
-       font-family: sans-serif;
-       font-size: 70%;
-}
-
-td.selflink {
-       padding-right: 0px;
-}
-
-td.sha1 {
-       font-family: monospace;
-}
-
-.error {
-       color: red;
-       background-color: yellow;
-}
-
-td.current_head {
-       text-decoration: underline;
-}
-
-table.diff_tree span.file_status.new {
-       color: #008000;
-}
-
-table.diff_tree span.file_status.deleted {
-       color: #c00000;
-}
-
-table.diff_tree span.file_status.moved,
-table.diff_tree span.file_status.mode_chnge {
-       color: #777777;
-}
-
-table.diff_tree span.file_status.copied {
-  color: #70a070;
-}
-
-/* noage: "No commits" */
-table.project_list td.noage {
-       color: #808080;
-       font-style: italic;
-}
-
-/* age2: 60*60*24*2 <= age */
-table.project_list td.age2, table.blame td.age2 {
-       font-style: italic;
-}
-
-/* age1: 60*60*2 <= age < 60*60*24*2 */
-table.project_list td.age1 {
-       color: #009900;
-       font-style: italic;
-}
-
-table.blame td.age1 {
-       color: #009900;
-       background: transparent;
-}
-
-/* age0: age < 60*60*2 */
-table.project_list td.age0 {
-       color: #009900;
-       font-style: italic;
-       font-weight: bold;
-}
-
-table.blame td.age0 {
-       color: #009900;
-       background: transparent;
-       font-weight: bold;
-}
-
-td.pre, div.pre, div.diff {
-       font-family: monospace;
-       font-size: 12px;
-       white-space: pre;
-}
-
-td.mode {
-       font-family: monospace;
-}
-
-/* progress of blame_interactive */
-div#progress_bar {
-       height: 2px;
-       margin-bottom: -2px;
-       background-color: #d8d9d0;
-}
-div#progress_info {
-       float: right;
-       text-align: right;
-}
-
-/* format of (optional) objects size in 'tree' view */
-td.size {
-       font-family: monospace;
-       text-align: right;
-}
-
-/* styling of diffs (patchsets): commitdiff and blobdiff views */
-div.diff.header,
-div.diff.extended_header {
-       white-space: normal;
-}
-
-div.diff.header {
-       font-weight: bold;
-
-       background-color: #edece6;
-
-       margin-top: 4px;
-       padding: 4px 0px 2px 0px;
-       border: solid #d9d8d1;
-       border-width: 1px 0px 1px 0px;
-}
-
-div.diff.header a.path {
-       text-decoration: underline;
-}
-
-div.diff.extended_header,
-div.diff.extended_header a.path,
-div.diff.extended_header a.hash {
-       color: #777777;
-}
-
-div.diff.extended_header .info {
-       color: #b0b0b0;
-}
-
-div.diff.extended_header {
-       background-color: #f6f5ee;
-       padding: 2px 0px 2px 0px;
-}
-
-div.diff a.list,
-div.diff a.path,
-div.diff a.hash {
-       text-decoration: none;
-}
-
-div.diff a.list:hover,
-div.diff a.path:hover,
-div.diff a.hash:hover {
-       text-decoration: underline;
-}
-
-div.diff.to_file a.path,
-div.diff.to_file {
-       color: #007000;
-}
-
-div.diff.add {
-       color: #008800;
-}
-
-div.diff.from_file a.path,
-div.diff.from_file {
-       color: #aa0000;
-}
-
-div.diff.rem {
-       color: #cc0000;
-}
-
-div.diff.chunk_header a,
-div.diff.chunk_header {
-       color: #990099;
-}
-
-div.diff.chunk_header {
-       border: dotted #ffe0ff;
-       border-width: 1px 0px 0px 0px;
-       margin-top: 2px;
-}
-
-div.diff.chunk_header span.chunk_info {
-       background-color: #ffeeff;
-}
-
-div.diff.chunk_header span.section {
-       color: #aa22aa;
-}
-
-div.diff.incomplete {
-       color: #cccccc;
-}
-
-div.diff.nodifferences {
-       font-weight: bold;
-       color: #600000;
-}
-
-div.index_include {
-       border: solid #d9d8d1;
-       border-width: 0px 0px 1px;
-       padding: 12px 8px;
-}
-
-div.search {
-       font-size: 100%;
-       font-weight: normal;
-       margin: 4px 8px;
-       float: right;
-       top: 56px;
-       right: 12px
-}
-
-p.projsearch {
-       text-align: center;
-}
-
-td.linenr {
-       text-align: right;
-}
-
-a.linenr {
-       color: #999999;
-       text-decoration: none
-}
-
-a.rss_logo {
-       float: right;
-       padding: 3px 0px;
-       width: 35px;
-       line-height: 10px;
-       border: 1px solid;
-       border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
-       color: #ffffff;
-       background-color: #ff6600;
-       font-weight: bold;
-       font-family: sans-serif;
-       font-size: 70%;
-       text-align: center;
-       text-decoration: none;
-}
-
-a.rss_logo:hover {
-       background-color: #ee5500;
-}
-
-a.rss_logo.generic {
-       background-color: #ff8800;
-}
-
-a.rss_logo.generic:hover {
-       background-color: #ee7700;
-}
-
-span.refs span {
-       padding: 0px 4px;
-       font-size: 70%;
-       font-weight: normal;
-       border: 1px solid;
-       background-color: #ffaaff;
-       border-color: #ffccff #ff00ee #ff00ee #ffccff;
-}
-
-span.refs span a {
-       text-decoration: none;
-       color: inherit;
-}
-
-span.refs span a:hover {
-       text-decoration: underline;
-}
-
-span.refs span.indirect {
-       font-style: italic;
-}
-
-span.refs span.ref {
-       background-color: #aaaaff;
-       border-color: #ccccff #0033cc #0033cc #ccccff;
-}
-
-span.refs span.tag {
-       background-color: #ffffaa;
-       border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
-}
-
-span.refs span.head {
-       background-color: #aaffaa;
-       border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
-}
-
-span.atnight {
-       color: #cc0000;
-}
-
-span.match {
-       color: #e00000;
-}
-
-div.binary {
-       font-style: italic;
-}
-
-/* Style definition generated by highlight 2.4.5, http://www.andre-simon.de/ */
-
-/* Highlighting theme definition: */
-
-.num    { color:#2928ff; }
-.esc    { color:#ff00ff; }
-.str    { color:#ff0000; }
-.dstr   { color:#818100; }
-.slc    { color:#838183; font-style:italic; }
-.com    { color:#838183; font-style:italic; }
-.dir    { color:#008200; }
-.sym    { color:#000000; }
-.line   { color:#555555; }
-.kwa    { color:#000000; font-weight:bold; }
-.kwb    { color:#830000; }
-.kwc    { color:#000000; font-weight:bold; }
-.kwd    { color:#010181; }
index cbfd7c332301c7ebd5b7d8d2463dd6b33536879f..e88b948ff3872115b925c2819a46976eb9360388 100644 (file)
@@ -81,6 +81,9 @@ class ContentProvider {
                case "rendertime":
                        $rep = "%rendertime%"; //gets replaced later
                        break;
+               case "template_path":
+                       $rep = 'templates/'.(GitConfig::TEMPLATE_NAME ? GitConfig::TEMPLATE_NAME : 'default');
+                       break;
                default:
                        if(array_key_exists($var, $this->content)) {
                                $rep = $this->resolve_content($this->content[$var]);
index f02fb4607dcd2314be163ddddd97bae5a5628261..ca0bcd78f2f541de321f6b9d26ea0ee5316d1719 100644 (file)
@@ -90,26 +90,26 @@ class diff {
                $header = array();
                if(!$this->diff) {
                        $header[] = "diff --cc ";
-                       $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'path' => ''));
+                       $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'file_hash' => $this->tree['to_id'], 'path' => ''));
                } else if($this->tree['parents'] > 1) {
                        preg_match('!^(diff (.*?) )"?.*$!', $this->diff[0], $match);
                        $header[] = $match[1];
                        if(preg_match('/^[0]{40}$/', $this->tree['to_id']))
                                $header[] = $this->tree['to_file'];
                        else
-                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'path' => ''));
+                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'file_hash' => $this->tree['to_id'], 'path' => ''));
                } else {
                        preg_match('!^(diff (.*?) )"?a/.*$!', $this->diff[0], $match);
                        $header[] = $match[1];
                        if(preg_match('/^[0]{40}$/', $this->tree['from_id']))
                                $header[] = 'a/'.$this->tree['file'];
                        else
-                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['parent'][0], 'file' => $this->tree['from_file'], 'path' => 'a/'));
+                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['parent'][0], 'file' => $this->tree['from_file'], 'file_hash' => $this->tree['from_id'], 'path' => 'a/'));
                        $header[] = ' ';
                        if(preg_match('/^[0]{40}$/', $this->tree['to_id']))
                                $header[] = 'b/'.$this->tree['file'];
                        else
-                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'path' => 'b/'));
+                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'file_hash' => $this->tree['to_id'], 'path' => 'b/'));
                }
                return $header;
        }
@@ -122,10 +122,14 @@ class diff {
                                $this->data['copy']++;
                        else
                                $this->data['copy'] = 0;
-                       $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['parent'][$this->data['copy']], 'file' => $this->tree['from_file'], 'path' => ''));
+                       if(is_array($this->tree['from_id']))
+                               $from_id = $this->tree['from_id'][$this->data['copy']];
+                       else
+                               $from_id = $this->tree['from_id'];
+                       $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['parent'][$this->data['copy']], 'file' => $this->tree['from_file'], 'file_hash' => $from_id, 'path' => ''));
                } else if(preg_match('/^((copy|rename) to ).*$/', $line, $matches)) {
                        $header[] = $matches[1];
-                       $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'path' => ''));
+                       $header[] = new ContentProvider('commitdiff', 'patch_link_blob', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'file_hash' => $this->tree['to_id'], 'path' => ''));
                } else if(preg_match('/^(index )[0-9a-fA-F]{40},[0-9a-fA-F]{40}/', $line, $matches)) { //combined diff
                        $header[] = $matches[1];
                        $parent_id = 0;
@@ -135,7 +139,7 @@ class diff {
                                if(preg_match('/^[0]{40}$/', $from_id))
                                        $header[] = '0000000';
                                else
-                                       $header[] = new ContentProvider('commitdiff', 'patch_link_blob_id', array('hash' => $this->commit['parent'][$parent_id], 'file' => $this->tree['from_file'], 'id' => substr($from_id, 0, 7)));
+                                       $header[] = new ContentProvider('commitdiff', 'patch_link_blob_id', array('hash' => $this->commit['parent'][$parent_id], 'file' => $this->tree['from_file'], 'file_hash' => $from_id, 'id' => substr($from_id, 0, 7)));
                                $parent_id++;
                        }
                } else if(preg_match('/^(index )([0-9a-fA-F]{40})..([0-9a-fA-F]{40})/', $line, $matches)) {
@@ -143,12 +147,12 @@ class diff {
                        if(preg_match('/^[0]{40}$/', $matches[2]))
                                $header[] = '0000000';
                        else
-                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob_id', array('hash' => $this->commit['parent'][0], 'file' => $this->tree['from_file'], 'id' => substr($matches[2], 0, 7)));
+                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob_id', array('hash' => $this->commit['parent'][0], 'file' => $this->tree['from_file'], 'file_hash' => $this->tree['from_id'], 'id' => substr($matches[2], 0, 7)));
                        $header[] = '..';
                        if(preg_match('/^[0]{40}$/', $matches[3]))
                                $header[] = '0000000';
                        else
-                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob_id', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'id' => substr($matches[3], 0, 7)));
+                               $header[] = new ContentProvider('commitdiff', 'patch_link_blob_id', array('hash' => $this->commit['id'], 'file' => $this->tree['to_file'], 'file_hash' => $this->tree['to_id'], 'id' => substr($matches[3], 0, 7)));
                } else
                        $header[] = $line;
                if(preg_match('/([0-7]{6})$/', $line, $matches)) {
index 4b81e342295a0a76398fae75f3410898d81e8075..880e7e3fb6228fc448d150793e83422bb8fe3277 100644 (file)
@@ -51,12 +51,13 @@ class difftree {
                $tree->set('class', $class);
                $tree->set('hash', $commit['id']);
                $tree->set('file', $entry['file']);
+               $tree->set('file_hash', $entry['to_id']);
                
                if(count($commit['parent']) > 1) {
                        if(preg_match('/^[0]{40}$/', $entry['to_id'])) //file doesn't exist in the result (child) commit
                                $tree->set('file', $entry['file']);
                        else
-                               $tree->set('file', new ContentProvider('commit', 'tree_file_link', array('file' => $entry['file'])));
+                               $tree->set('file', new ContentProvider('commit', 'tree_file_link', array('file' => $entry['file'], 'file_hash' => $entry['to_id'])));
                        
                        $tree->set('specials', '');
                        
@@ -80,7 +81,7 @@ class difftree {
                                case 'D': //Deleted
                                        $merge = new ContentProvider('commit', 'tree_merge');
                                        $merge->set('class', '');
-                                       $blob_link = new ContentProvider('commit', 'tree_merge_blob', array('hash' => $commit['parent'][$i], 'file' => $entry['file']));
+                                       $blob_link = new ContentProvider('commit', 'tree_merge_blob', array('hash' => $commit['parent'][$i], 'file' => $entry['file'], 'file_hash' => $entry['to_id']));
                                        $merge->set('links', array($blob_link, ' | '));
                                        break;
                                default:
@@ -90,7 +91,15 @@ class difftree {
                                                $merge->set('links', ' | ');
                                        } else {
                                                $merge->set('class', '');
-                                               $merge->set('links', new ContentProvider('commit', 'tree_merge_diff', array('hash' => $commit['id'], 'parent' => $commit['parent'][$i], 'file' => $entry['file'], 'id' => ($i + 1))));
+                                               $params = array(
+                                                                       'hash' => $commit['id'], 
+                                                                       'parent' => $commit['parent'][$i], 
+                                                                       'file' => $entry['file'], 
+                                                                       'file_hash' => $entry['to_id'],
+                                                                       'parent_file_hash' => $entry['from_id'][$i],
+                                                                       'id' => ($i + 1)
+                                                               );
+                                               $merge->set('links', new ContentProvider('commit', 'tree_merge_diff', $params));
                                        }
                                }
                                $tree->append('merge', $merge);
@@ -98,15 +107,15 @@ class difftree {
                        
                        $tree->set('links', '');
                        if($not_deleted) {
-                               $tree->append('links', new ContentProvider('commit', 'tree_merge_blob', array('hash' => $commit['id'], 'file' => $entry['file'])));
+                               $tree->append('links', new ContentProvider('commit', 'tree_merge_blob', array('hash' => $commit['id'], 'file' => $entry['file'], 'file_hash' => $entry['to_id'])));
                                if($has_history)
                                        $tree->append('links', ' | ');
                        }
                        if($has_history)
-                               $tree->append('links', new ContentProvider('commit', 'tree_merge_history', array('hash' => $commit['id'], 'file' => $entry['file'])));
+                               $tree->append('links', new ContentProvider('commit', 'tree_merge_history', array('hash' => $commit['id'], 'file' => $entry['file'], 'file_hash' => $entry['to_id'])));
                        
                } else {
-                       $tree->set('file', new ContentProvider('commit', 'tree_file_link', array('file' => $entry['file'])));
+                       $tree->set('file', new ContentProvider('commit', 'tree_file_link', array('file' => $entry['to_file'], 'file_hash' => $entry['to_id'])));
                        $tree->set('merge', '');
                        
                        $from_type = Tools::get_filetype($entry['from_mode']);
@@ -118,6 +127,8 @@ class difftree {
                        $link_placeholders = array(
                                        "hash" => $commit['id'],
                                        "file" => $entry['file'],
+                                       "file_hash"     => $entry['to_id'],
+                                       "parent_file_hash"      => $entry['from_id'],
                                        "parent" => (count($commit['parent']) ? $commit['parent'][0] : ""),
                                );
                        if($patch_link)
@@ -156,8 +167,8 @@ class difftree {
                                $actions = array('R' => 'tree_moved', 'C' => 'tree_copied');
                                $move = new ContentProvider('commit', $actions[$entry['status']]);
                                $tree->set('specials', $move);
-                               $tree->set('file', $entry['to_file']);
                                $move->set('file', $entry['from_file']);
+                               $move->set('file_hash', $entry['to_id']);
                                $move->set('hash', $commit['parent'][0]);
                                $move->set('similarity', $entry['similarity']);
                                if($from_mode != $to_mode)
index 9d3aa8f11f21a2851d1e59575db7676c091ece7d..a60644887a15313cae68b286224b994eaa513fff 100644 (file)
 # [tree_merge_new]
        <td class="link" align="right"> | </td>
 # [tree_merge_blob]
-<a href="?p=%project%&a=blob&h=%hash%&f=%file%">blob</a>
+<a href="?p=%project%&a=blob&h=%hash%&f=%file%&fh=%file_hash%">blob</a>
 # [tree_merge_history]
 <a href="?p=%project%&a=history&h=%hash%&f=%file%">history</a>
 # [tree_merge_diff]
-<a href="?p=%project%&a=blobdiff&h=%hash%&f=%file%&hp=%parent%">diff%id%</a> | 
+<a href="?p=%project%&a=blobdiff&h=%hash%&f=%file%&hp=%parent%&fh=%file_hash%&fhp=%parent_file_hash%">diff%id%</a> | 
 # [tree_merge_patch_link]
        <td class="link"><a href="#%patch_marker%">patch</a> | </td>
 
 
 # [tree_file_link]
-<a class="list" href="?p=%project%&a=blob&h=%hash%&f=%file%">%file%</a>
+<a class="list" href="?p=%project%&a=blob&h=%hash%&f=%file%&fh=%file_hash%">%file%</a>
 
 # [tree_patch_link]
 <a href="#%patch_marker%">patch</a> | 
 <span class="file_status new">[new %type% with mode: %mode%]</span>
 
 # [tree_new_links]
-<a href="?p=%project%&a=blob&h=%hash%&f=%file%">blob</a>
+<a href="?p=%project%&a=blob&h=%hash%&f=%file%&fh=%file_hash%">blob</a>
 
 # [tree_deleted]
 <span class="file_status deleted">[deleted %type%]</span>
 
 # [tree_deleted_links]
-<a href="?p=%project%&a=blob&h=%hash%&f=%file%">blob</a> | <a href="?p=%project%&a=history&h=%hash%&f=%file%">history</a>
+<a href="?p=%project%&a=blob&h=%hash%&f=%file%&fh=%file_hash%">blob</a> | <a href="?p=%project%&a=history&h=%hash%&f=%file%">history</a>
 
 # [tree_changed]
 <span class="file_status mode_chnge">[changed%changes%]</span>
  mode: %to%
 
 # [tree_changed_links_diff]
-<a href="?p=%project%&a=blobdiff&h=%hash%&f=%file%&hp=%parent%">diff</a> | 
+<a href="?p=%project%&a=blobdiff&h=%hash%&f=%file%&hp=%parent%&fh=%file_hash%&fhp=%parent_file_hash%">diff</a> | 
 # [tree_changed_links]
-<a href="?p=%project%&a=blob&h=%hash%&f=%file%">blob</a> | <a href="?p=%project%&a=history&h=%hash%&f=%file%">history</a>
+<a href="?p=%project%&a=blob&h=%hash%&f=%file%&fh=%file_hash%">blob</a> | <a href="?p=%project%&a=history&h=%hash%&f=%file%">history</a>
 
 # [tree_moved]
-<span class="file_status moved">[moved from <a class="list" href="?p=%project%&a=blob&f=%file%&h=%hash%">%file%</a> with %similarity% similarity%mode%]</span>
+<span class="file_status moved">[moved from <a class="list" href="?p=%project%&a=blob&f=%file%&h=%hash%&fh=%file_hash%">%file%</a> with %similarity% similarity%mode%]</span>
 # [tree_copied]
-<span class="file_status copied">[copied from <a class="list" href="?p=%project%&a=blob&f=%file%&h=%hash%">%file%</a> with %similarity% similarity%mode%]</span>
+<span class="file_status copied">[copied from <a class="list" href="?p=%project%&a=blob&f=%file%&h=%hash%&fh=%file_hash%">%file%</a> with %similarity% similarity%mode%]</span>
 # [tree_moved_mode]
 , mode: %mode%
 
 # [tree_moved_links_diff]
-<a href="?p=%project%&a=blobdiff&h=%hash%&f=src/mod-helpserv.c&hp=%parent%">diff</a> | 
+<a href="?p=%project%&a=blobdiff&h=%hash%&f=src/mod-helpserv.c&hp=%parent%&fh=%file_hash%&fhp=%parent_file_hash%">diff</a> | 
 # [tree_moved_links]
-<a href="?p=%project%&a=blob&h=%hash%&f=%file%">blob</a> | <a href="?p=%project%&a=history&h=%hash%&f=%file%">history</a>
+<a href="?p=%project%&a=blob&h=%hash%&f=%file%&fh=%file_hash%">blob</a> | <a href="?p=%project%&a=history&h=%hash%&f=%file%">history</a>
index ec42c02d3a646ee6eddb4732f62b4c44fbedf541..37d932e0f0bb29e5bf67ce10c335211924ccf70c 100644 (file)
 </div>
 
 # [patch_link_blob]
-<a class="path" href="?p=%project%&a=blob&h=%hash%&f=%file%">%path%%file%</a>
+<a class="path" href="?p=%project%&a=blob&h=%hash%&f=%file%&fh=%file_hash%">%path%%file%</a>
 
 # [patch_link_blob_id]
-<a class="path" href="?p=%project%&a=blob&h=%hash%&f=%file%">%id%</a>
+<a class="path" href="?p=%project%&a=blob&h=%hash%&f=%file%&fh=%file_hash%">%id%</a>
 
 # [patch_fileinfo]
 <span class="info"> (%info%)</span>
diff --git a/htdocs/templates/default/gitweb.css b/htdocs/templates/default/gitweb.css
new file mode 100644 (file)
index 0000000..a2b59f1
--- /dev/null
@@ -0,0 +1,612 @@
+body {
+       font-family: sans-serif;
+       font-size: small;
+       border: solid #d9d8d1;
+       border-width: 1px;
+       margin: 10px;
+       background-color: #ffffff;
+       color: #000000;
+}
+
+a {
+       color: #0000cc;
+}
+
+a:hover, a:visited, a:active {
+       color: #880000;
+}
+
+span.cntrl {
+       border: dashed #aaaaaa;
+       border-width: 1px;
+       padding: 0px 2px 0px 2px;
+       margin:  0px 2px 0px 2px;
+}
+
+img.logo {
+       float: right;
+       border-width: 0px;
+}
+
+img.avatar {
+       vertical-align: middle;
+}
+
+a.list img.avatar {
+       border-style: none;
+}
+
+div.page_header {
+       height: 25px;
+       padding: 8px;
+       font-size: 150%;
+       font-weight: bold;
+       background-color: #d9d8d1;
+}
+
+div.page_header a:visited, a.header {
+       color: #0000cc;
+}
+
+div.page_header a:hover {
+       color: #880000;
+}
+
+div.page_nav {
+       padding: 8px;
+}
+
+div.page_nav a:visited {
+       color: #0000cc;
+}
+
+div.page_path {
+       padding: 8px;
+       font-weight: bold;
+       border: solid #d9d8d1;
+       border-width: 0px 0px 1px;
+}
+
+div.page_footer {
+       height: 17px;
+       padding: 4px 8px;
+       background-color: #d9d8d1;
+}
+
+div.page_footer_text {
+       float: left;
+       color: #555555;
+       font-style: italic;
+}
+
+div#generating_info {
+       margin: 4px;
+       font-size: smaller;
+       text-align: center;
+       color: #505050;
+}
+
+div.page_body {
+       padding: 8px;
+       font-family: monospace;
+}
+
+div.title, a.title {
+       display: block;
+       padding: 6px 8px;
+       font-weight: bold;
+       background-color: #edece6;
+       text-decoration: none;
+       color: #000000;
+}
+
+div.readme {
+       padding: 8px;
+}
+
+a.title:hover {
+       background-color: #d9d8d1;
+}
+
+div.title_text {
+       padding: 6px 0px;
+       border: solid #d9d8d1;
+       border-width: 0px 0px 1px;
+       font-family: monospace;
+}
+
+div.log_body {
+       padding: 8px 8px 8px 150px;
+}
+
+span.age {
+       position: relative;
+       float: left;
+       width: 142px;
+       font-style: italic;
+}
+
+span.signoff {
+       color: #888888;
+}
+
+div.log_link {
+       padding: 0px 8px;
+       font-size: 70%;
+       font-family: sans-serif;
+       font-style: normal;
+       position: relative;
+       float: left;
+       width: 136px;
+}
+
+div.list_head {
+       padding: 6px 8px 4px;
+       border: solid #d9d8d1;
+       border-width: 1px 0px 0px;
+       font-style: italic;
+}
+
+.author_date, .author {
+       font-style: italic;
+}
+
+div.author_date {
+       padding: 8px;
+       border: solid #d9d8d1;
+       border-width: 0px 0px 1px 0px;
+}
+
+a.list {
+       text-decoration: none;
+       color: #000000;
+}
+
+a.subject, a.name {
+       font-weight: bold;
+}
+
+table.tags a.subject {
+       font-weight: normal;
+}
+
+a.list:hover {
+       text-decoration: underline;
+       color: #880000;
+}
+
+a.text {
+       text-decoration: none;
+       color: #0000cc;
+}
+
+a.text:visited {
+       text-decoration: none;
+       color: #880000;
+}
+
+a.text:hover {
+       text-decoration: underline;
+       color: #880000;
+}
+
+table {
+       padding: 8px 4px;
+       border-spacing: 0;
+}
+
+table.shortlog td {
+    padding: 0px 8px;
+    vertical-align: middle;
+    height:20px;
+}
+
+img.graph {
+    padding: 0px;
+    margin: 0px;
+    display: block;
+}
+
+table.diff_tree {
+       font-family: monospace;
+}
+
+table.combined.diff_tree th {
+       text-align: center;
+}
+
+table.combined.diff_tree td {
+       padding-right: 24px;
+}
+
+table.combined.diff_tree th.link,
+table.combined.diff_tree td.link {
+       padding: 0px 2px;
+}
+
+table.combined.diff_tree td.nochange a {
+       color: #6666ff;
+}
+
+table.combined.diff_tree td.nochange a:hover,
+table.combined.diff_tree td.nochange a:visited {
+       color: #d06666;
+}
+
+table.blame {
+       border-collapse: collapse;
+}
+
+table.blame td {
+       padding: 0px 5px;
+       font-size: 100%;
+       vertical-align: top;
+}
+
+th {
+       padding: 2px 5px;
+       font-size: 100%;
+       text-align: left;
+}
+
+/* do not change row style on hover for 'blame' view */
+tr.light,
+table.blame .light:hover {
+       background-color: #ffffff;
+}
+
+tr.dark,
+table.blame .dark:hover {
+       background-color: #f6f6f0;
+}
+
+tr.header {
+    background-color: #d9d8d1;
+}
+
+tr.header td {
+    vertical-align: center;
+}
+
+/* currently both use the same, but it can change */
+tr.light:hover,
+tr.dark:hover {
+       background-color: #edece6;
+}
+
+/* boundary commits in 'blame' view */
+/* and commits without "previous" */
+tr.boundary td.sha1,
+tr.no-previous td.linenr {
+       font-weight: bold;
+}
+
+/* for 'blame_incremental', during processing */
+tr.color1 { background-color: #f6fff6; }
+tr.color2 { background-color: #f6f6ff; }
+tr.color3 { background-color: #fff6f6; }
+
+td {
+       padding: 2px 5px;
+       font-size: 100%;
+       vertical-align: top;
+}
+
+td.link, td.selflink {
+       padding: 2px 5px;
+       font-family: sans-serif;
+       font-size: 70%;
+}
+
+td.selflink {
+       padding-right: 0px;
+}
+
+td.sha1 {
+       font-family: monospace;
+}
+
+.error {
+       color: red;
+       background-color: yellow;
+}
+
+td.current_head {
+       text-decoration: underline;
+}
+
+table.diff_tree span.file_status.new {
+       color: #008000;
+}
+
+table.diff_tree span.file_status.deleted {
+       color: #c00000;
+}
+
+table.diff_tree span.file_status.moved,
+table.diff_tree span.file_status.mode_chnge {
+       color: #777777;
+}
+
+table.diff_tree span.file_status.copied {
+  color: #70a070;
+}
+
+/* noage: "No commits" */
+table.project_list td.noage {
+       color: #808080;
+       font-style: italic;
+}
+
+/* age2: 60*60*24*2 <= age */
+table.project_list td.age2, table.blame td.age2 {
+       font-style: italic;
+}
+
+/* age1: 60*60*2 <= age < 60*60*24*2 */
+table.project_list td.age1 {
+       color: #009900;
+       font-style: italic;
+}
+
+table.blame td.age1 {
+       color: #009900;
+       background: transparent;
+}
+
+/* age0: age < 60*60*2 */
+table.project_list td.age0 {
+       color: #009900;
+       font-style: italic;
+       font-weight: bold;
+}
+
+table.blame td.age0 {
+       color: #009900;
+       background: transparent;
+       font-weight: bold;
+}
+
+td.pre, div.pre, div.diff {
+       font-family: monospace;
+       font-size: 12px;
+       white-space: pre;
+}
+
+td.mode {
+       font-family: monospace;
+}
+
+/* progress of blame_interactive */
+div#progress_bar {
+       height: 2px;
+       margin-bottom: -2px;
+       background-color: #d8d9d0;
+}
+div#progress_info {
+       float: right;
+       text-align: right;
+}
+
+/* format of (optional) objects size in 'tree' view */
+td.size {
+       font-family: monospace;
+       text-align: right;
+}
+
+/* styling of diffs (patchsets): commitdiff and blobdiff views */
+div.diff.header,
+div.diff.extended_header {
+       white-space: normal;
+}
+
+div.diff.header {
+       font-weight: bold;
+
+       background-color: #edece6;
+
+       margin-top: 4px;
+       padding: 4px 0px 2px 0px;
+       border: solid #d9d8d1;
+       border-width: 1px 0px 1px 0px;
+}
+
+div.diff.header a.path {
+       text-decoration: underline;
+}
+
+div.diff.extended_header,
+div.diff.extended_header a.path,
+div.diff.extended_header a.hash {
+       color: #777777;
+}
+
+div.diff.extended_header .info {
+       color: #b0b0b0;
+}
+
+div.diff.extended_header {
+       background-color: #f6f5ee;
+       padding: 2px 0px 2px 0px;
+}
+
+div.diff a.list,
+div.diff a.path,
+div.diff a.hash {
+       text-decoration: none;
+}
+
+div.diff a.list:hover,
+div.diff a.path:hover,
+div.diff a.hash:hover {
+       text-decoration: underline;
+}
+
+div.diff.to_file a.path,
+div.diff.to_file {
+       color: #007000;
+}
+
+div.diff.add {
+       color: #008800;
+}
+
+div.diff.from_file a.path,
+div.diff.from_file {
+       color: #aa0000;
+}
+
+div.diff.rem {
+       color: #cc0000;
+}
+
+div.diff.chunk_header a,
+div.diff.chunk_header {
+       color: #990099;
+}
+
+div.diff.chunk_header {
+       border: dotted #ffe0ff;
+       border-width: 1px 0px 0px 0px;
+       margin-top: 2px;
+}
+
+div.diff.chunk_header span.chunk_info {
+       background-color: #ffeeff;
+}
+
+div.diff.chunk_header span.section {
+       color: #aa22aa;
+}
+
+div.diff.incomplete {
+       color: #cccccc;
+}
+
+div.diff.nodifferences {
+       font-weight: bold;
+       color: #600000;
+}
+
+div.index_include {
+       border: solid #d9d8d1;
+       border-width: 0px 0px 1px;
+       padding: 12px 8px;
+}
+
+div.search {
+       font-size: 100%;
+       font-weight: normal;
+       margin: 4px 8px;
+       float: right;
+       top: 56px;
+       right: 12px
+}
+
+p.projsearch {
+       text-align: center;
+}
+
+td.linenr {
+       text-align: right;
+}
+
+a.linenr {
+       color: #999999;
+       text-decoration: none
+}
+
+a.rss_logo {
+       float: right;
+       padding: 3px 0px;
+       width: 35px;
+       line-height: 10px;
+       border: 1px solid;
+       border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
+       color: #ffffff;
+       background-color: #ff6600;
+       font-weight: bold;
+       font-family: sans-serif;
+       font-size: 70%;
+       text-align: center;
+       text-decoration: none;
+}
+
+a.rss_logo:hover {
+       background-color: #ee5500;
+}
+
+a.rss_logo.generic {
+       background-color: #ff8800;
+}
+
+a.rss_logo.generic:hover {
+       background-color: #ee7700;
+}
+
+span.refs span {
+       padding: 0px 4px;
+       font-size: 70%;
+       font-weight: normal;
+       border: 1px solid;
+       background-color: #ffaaff;
+       border-color: #ffccff #ff00ee #ff00ee #ffccff;
+}
+
+span.refs span a {
+       text-decoration: none;
+       color: inherit;
+}
+
+span.refs span a:hover {
+       text-decoration: underline;
+}
+
+span.refs span.indirect {
+       font-style: italic;
+}
+
+span.refs span.ref {
+       background-color: #aaaaff;
+       border-color: #ccccff #0033cc #0033cc #ccccff;
+}
+
+span.refs span.tag {
+       background-color: #ffffaa;
+       border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
+}
+
+span.refs span.head {
+       background-color: #aaffaa;
+       border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
+}
+
+span.atnight {
+       color: #cc0000;
+}
+
+span.match {
+       color: #e00000;
+}
+
+div.binary {
+       font-style: italic;
+}
+
+/* Style definition generated by highlight 2.4.5, http://www.andre-simon.de/ */
+
+/* Highlighting theme definition: */
+
+.num    { color:#2928ff; }
+.esc    { color:#ff00ff; }
+.str    { color:#ff0000; }
+.dstr   { color:#818100; }
+.slc    { color:#838183; font-style:italic; }
+.com    { color:#838183; font-style:italic; }
+.dir    { color:#008200; }
+.sym    { color:#000000; }
+.line   { color:#555555; }
+.kwa    { color:#000000; font-weight:bold; }
+.kwb    { color:#830000; }
+.kwc    { color:#000000; font-weight:bold; }
+.kwd    { color:#010181; }
index ae7ea9b64a146d104722c1e6aafd89854f1a33a3..302518a80fa39cb05f564b3580e46255c8aefbec 100644 (file)
@@ -9,7 +9,7 @@
 <meta name="generator" content="phpgitweb/%version% git/%git_version%"/>
 <meta name="robots" content="index, nofollow"/>
 <title>%title%</title>
-<link rel="stylesheet" type="text/css" href="gitweb.css"/>
+<link rel="stylesheet" type="text/css" href="%template_path%/gitweb.css"/>
 <link rel="alternate" title="%title% projects list" href="?a=project_index" type="text/plain; charset=utf-8" />
 <link rel="alternate" title="%title% projects feeds" href="?a=opml" type="text/x-opml" />
 <link rel="shortcut icon" href="git-favicon.png" type="image/png" />