Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
git
提交
42f7eb94
G
git
项目概览
李少辉-开发者
/
git
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
git
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
42f7eb94
编写于
8月 07, 2005
作者:
K
Kay Sievers
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
v125
上级
eb28240b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
66 addition
and
47 deletion
+66
-47
gitweb.cgi
gitweb.cgi
+66
-47
未找到文件。
gitweb.cgi
浏览文件 @
42f7eb94
...
...
@@ -14,7 +14,7 @@ use CGI::Carp qw(fatalsToBrowser);
use Fcntl ':mode';
my $cgi = new CGI;
my $version = "12
1
";
my $version = "12
5
";
my $my_url = $cgi->url();
my $my_uri = $cgi->url(-absolute => 1);
my $rss_link = "";
...
...
@@ -200,11 +200,13 @@ div.list_head {
div
.list
a
{
text-decoration
:
none
;
color
:
#000000
;
}
div
.list
a
:hover
{
color
:
#880000
;
}
div
.link
{
margin
:
0px
15px
;
padding
:
0px
6px
8
px
;
border
:
solid
#d9d8d1
;
border-width
:
0px
1px
1px
;
margin
:
0px
15px
;
padding
:
4px
6px
6
px
;
border
:
solid
#d9d8d1
;
border-width
:
0px
1px
1px
;
font-family
:
sans-serif
;
font-size
:
10px
;
}
td
{
padding
:
5px
15px
0px
0px
;
font-size
:
12px
;
}
th
{
padding-right
:
10px
;
font-size
:
12px
;
text-align
:
left
;
}
td
.link
{
font-family
:
sans-serif
;
font-size
:
10px
;
}
td
.pre
{
font-family
:
monospace
;
font-size
:
12px
;
white-space
:
pre
;
padding
:
2px
15px
0px
0px
;
}
span
.diff_info
{
color
:
#000099
;
background-color
:
#edece6
;
font-style
:
italic
;
}
a
.rss_logo
{
float
:
right
;
padding
:
3px
0px
;
width
:
35px
;
line-height
:
10px
;
border
:
1px
solid
;
border-color
:
#fcc7a5
#7d3302
#3e1a01
#ff954e
;
...
...
@@ -257,6 +259,16 @@ sub die_error {
exit;
}
sub git_get_type {
my $hash = shift;
open my $fd, "-|", "$gitbin/git-cat-file -t $hash" || return;
my $type =
<
$
fd
>
;
close $fd;
chomp $type;
return $type;
}
sub git_read_head {
my $path = shift;
...
...
@@ -312,7 +324,11 @@ sub git_read_commit {
$
co
{'
parent
'}
=
$
parents
[0];
my
(@
comment) =
map
{
chomp
;
$
_
}
<$
fd
>
;
$co{'comment'} = \@comment;
$co{'title'} = $comment[0];
$comment[0] =~ m/^(.{0,60}[^ ]*)/;
$co{'title'} = $1;
if ($comment[0] ne $co{'title'}) {
$co{'title'} .= " [...]";
}
close $fd || return;
if (!defined $co{'tree'}) {
return undef
...
...
@@ -564,7 +580,7 @@ sub git_get_hash_by_path {
while (my $part = shift @parts) {
open my $fd, "-|", "$gitbin/git-ls-tree $tree" || die_error(undef, "Open git-ls-tree failed.");
my (@entries) = map { chomp; $_ }
<
$
fd
>
;
close $fd ||
die_error(undef, "Reading tree failed.")
;
close $fd ||
return undef
;
foreach my $line (@entries) {
#'100644 blob 0fa3f3a66fb6a137f6ec2c19351ed4d807070ffa panic.c'
$line =~ m/^([0-9]+)\t(.*)\t(.*)\t(.*)$/;
...
...
@@ -594,9 +610,9 @@ sub git_blob {
my $base = $file_name || "";
git_header_html();
if (defined $hash_base
&&
(my %co = git_read_commit($hash_base))) {
print "
<div
class=
\"page_nav\"
>
view
\n" .
print "
<div
class=
\"page_nav\"
>
\n" .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$hash_base"}, "commit") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash_base"}, "
diffs
") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash_base"}, "
commitdiff
") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=$hash_base"}, "tree");
if (defined $file_name) {
print " | " . $cgi->a({-href => "$my_uri?p=$project;a=history;h=$hash_base;f=$file_name"}, "history");
...
...
@@ -643,9 +659,9 @@ sub git_tree {
my $base = "";
if (defined $hash_base
&&
(my %co = git_read_commit($hash_base))) {
$base_key = ";hb=$hash_base";
print "
<div
class=
\"page_nav\"
>
view
\n" .
print "
<div
class=
\"page_nav\"
>
\n" .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$hash_base"}, "commit") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash_base"}, "
diffs
") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash_base"}, "
commitdiff
") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=$hash_base"}, "tree") .
"
<br/><br/>
\n" .
"
</div>
\n";
...
...
@@ -664,7 +680,7 @@ sub git_tree {
print "
<div
class=
\"page_path\"
>
/
</div>
\n";
}
print "
<div
class=
\"page_body\"
>
\n";
print "
<
pre
>
\n";
print "
<
table
cellspacing=
\"0\"
>
\n";
foreach my $line (@entries) {
#'100644 blob 0fa3f3a66fb6a137f6ec2c19351ed4d807070ffa panic.c'
$line =~ m/^([0-9]+)\t(.*)\t(.*)\t(.*)$/;
...
...
@@ -673,21 +689,23 @@ sub git_tree {
my $t_hash = $3;
my $t_name = $4;
$file_key = ";f=$base$t_name";
print "
<tr>
\n" .
"
<td
class=
\"pre\"
>
" . mode_str($t_mode) . "
</td>
\n";
if ($t_type eq "blob") {
print mode_str($t_mode). " " . $cgi->a({-href => "$my_uri?p=$project;a=blob;h=$t_hash" . $base_key . $file_key}, $t_name);
if (S_ISLNK(oct $t_mode)) {
open my $fd, "-|", "$gitbin/git-cat-file blob $t_hash";
my $target =
<
$
fd
>
;
close $fd;
print "\t -> $target";
}
print "\n";
print "
<td
class=
\"pre\"
>
$t_name
</td>
\n";
print "
<td
class=
\"link\"
>
" .
$cgi->a({-href => "$my_uri?p=$project;a=blob;h=$t_hash" . $base_key . $file_key}, "file") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=history;h=$hash_base" . $file_key}, "history") .
"
</td>
\n";
} elsif ($t_type eq "tree") {
print mode_str($t_mode). " " . $cgi->a({-href => "$my_uri?p=$project;a=tree;h=$t_hash" . $base_key . $file_key}, $t_name) . "\n";
print "
<td
class=
\"pre\"
>
" .
$cgi->a({-href => "$my_uri?p=$project;a=tree;h=$t_hash" . $base_key . $file_key}, $t_name) .
"
</td>
\n";
}
print "
</tr>
\n";
}
print "
</
pre>
\n";
print
"
</div>
";
print "
</
table>
\n" .
"
</div>
";
git_footer_html();
}
...
...
@@ -737,7 +755,6 @@ sub git_log {
git_header_html();
print "
<div
class=
\"page_nav\"
>
\n";
print "view ";
print $cgi->a({-href => "$my_uri?p=$project;a=log"}, "last 10") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=log;t=1"}, "day") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=log;t=7"}, "week") . " | " .
...
...
@@ -762,8 +779,8 @@ sub git_log {
"
</div>
\n";
print "
<div
class=
\"title_text\"
>
\n" .
"
<div
class=
\"log_link\"
>
\n" .
"view " .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$commit"}, "commit") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$commit"}, "diff") .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$commit"}, "commit") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$commit"}, "
commit
diff") .
"
<br/>
\n" .
"
</div>
\n" .
"
<i>
" . escapeHTML($co{'author_name'}) . " [" . $ad{'rfc2822'} . "]
</i><br/>
\n" .
...
...
@@ -772,7 +789,7 @@ sub git_log {
my $comment = $co{'comment'};
my $empty = 0;
foreach my $line (@$comment) {
if ($line =~ m/^(signed
.off|acked).by
/i) {
if ($line =~ m/^(signed
[ \-]off[\-]by[ :]|acked[\-]by[ \:]|cc[ :])
/i) {
next;
}
if ($line eq "") {
...
...
@@ -813,10 +830,12 @@ sub git_commit {
close $fd || die_error(undef, "Reading ls-tree failed.");
}
git_header_html();
print "
<div
class=
\"page_nav\"
>
view\n" .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$hash"}, "commit") . " | \n" .
$cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash"}, "diffs") . " | \n" .
$cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=$hash"}, "tree") . "\n" .
print "
<div
class=
\"page_nav\"
>
\n" .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$hash"}, "commit");
if (defined $co{'parent'}) {
print " | " . $cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash"}, "commitdiff");
}
print " | " . $cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=$hash"}, "tree") . "\n" .
"
<br/><br/></div>
\n";
if (defined $co{'parent'}) {
print "
<div>
\n" .
...
...
@@ -838,8 +857,7 @@ sub git_commit {
}
print "
</td></tr>
\n";
print "
<tr><td>
committer
</td><td>
" . escapeHTML($co{'committer'}) . "
</td></tr>
\n";
print "
<tr><td></td><td>
" . $cd{'rfc2822'} .
sprintf(" (%02d:%02d %s)", $cd{'hour_local'}, $cd{'minute_local'}, $cd{'tz_local'}) . "
</td></tr>
\n";
print "
<tr><td></td><td>
" . $cd{'rfc2822'} . sprintf(" (%02d:%02d %s)", $cd{'hour_local'}, $cd{'minute_local'}, $cd{'tz_local'}) . "
</td></tr>
\n";
print "
<tr><td>
commit
</td><td
style=
\"font-family:
monospace
;\"
>
$hash
</td></tr>
\n";
print "
<tr><td>
tree
</td><td
style=
\"font-family:
monospace
;\"
>
" .
$cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=" . $hash}, $co{'tree'}) . "
</td></tr>
\n";
...
...
@@ -864,7 +882,7 @@ sub git_commit {
} else {
$empty = 0;
}
if ($line =~ m/
(signed.off|acked).by
/i) {
if ($line =~ m/
^(signed[ \-]off[\-]by[ :]|acked[\-]by[ \:]|cc[ :])
/i) {
$signed = 1;
print "
<span
style=
\"color:
#888888
\"
>
" . escapeHTML($line) . "
</span><br/>
\n";
} else {
...
...
@@ -900,8 +918,7 @@ sub git_commit {
escapeHTML($file) . "
<span
style=
\"color:
#008000
;\"
>
[new " . file_type($mode) . $mode_chng . "]
</span>
") . "\n" .
"
</div>
";
print "
<div
class=
\"link\"
>
\n" .
"view " .
$cgi->a({-href => "$my_uri?p=$project;a=blob;h=$id;hb=$hash;f=$file"}, "file") . "
<br/>
\n" .
$cgi->a({-href => "$my_uri?p=$project;a=blob;h=$id;hb=$hash;f=$file"}, "blob") . "
<br/>
\n" .
"
</div>
\n";
} elsif ($op eq "-") {
print "
<div
class=
\"list\"
>
\n" .
...
...
@@ -909,8 +926,7 @@ sub git_commit {
escapeHTML($file) . "
<span
style=
\"color:
#c00000
;\"
>
[deleted " . file_type($mode) . "]
</span>
") . "\n" .
"
</div>
";
print "
<div
class=
\"link\"
>
\n" .
"view " .
$cgi->a({-href => "$my_uri?p=$project;a=blob;h=$id;hb=$hash;f=$file"}, "file") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=blob;h=$id;hb=$hash;f=$file"}, "blob") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=history;h=$hash;f=$file"}, "history") . "
<br/>
\n" .
"
</div>
\n";
} elsif ($op eq "*") {
...
...
@@ -945,12 +961,11 @@ sub git_commit {
escapeHTML($file) . $mode_chnge) . "\n" .
"
</div>
\n";
}
print "
<div
class=
\"link\"
>
\n" .
"view ";
print "
<div
class=
\"link\"
>
\n";
if ($to_id ne $from_id) {
print $cgi->a({-href => "$my_uri?p=$project;a=blobdiff;h=$to_id;hp=$from_id;hb=$hash;f=$file"}, "diff") . " | ";
}
print $cgi->a({-href => "$my_uri?p=$project;a=blob;h=$to_id;hb=$hash;f=$file"}, "
file
") . " | " .
print $cgi->a({-href => "$my_uri?p=$project;a=blob;h=$to_id;hb=$hash;f=$file"}, "
blob
") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=history;h=$hash;f=$file"}, "history") . "
<br/>
\n" .
"
</div>
\n";
}
...
...
@@ -963,9 +978,9 @@ sub git_blobdiff {
mkdir($gittmp, 0700);
git_header_html();
if (defined $hash_base
&&
(my %co = git_read_commit($hash_base))) {
print "
<div
class=
\"page_nav\"
>
view
\n" .
print "
<div
class=
\"page_nav\"
>
\n" .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$hash_base"}, "commit") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash_base"}, "
diffs
") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash_base"}, "
commitdiff
") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=$hash_base"}, "tree");
if (defined $file_name) {
print " | " . $cgi->a({-href => "$my_uri?p=$project;a=history;h=$hash_base;f=$file_name"}, "history");
...
...
@@ -1009,9 +1024,9 @@ sub git_commitdiff {
close $fd || die_error(undef, "Reading diff-tree failed.");
git_header_html();
print "
<div
class=
\"page_nav\"
>
view
\n" .
print "
<div
class=
\"page_nav\"
>
\n" .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$hash"}, "commit") . " | \n" .
$cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash"}, "
diffs
") . " | \n" .
$cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash"}, "
commitdiff
") . " | \n" .
$cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=$hash"}, "tree") . "\n" .
"
<br/><br/></div>
\n";
print "
<div>
\n" .
...
...
@@ -1070,9 +1085,9 @@ sub git_history {
die_error(undef, "Unknown commit object.");
}
git_header_html();
print "
<div
class=
\"page_nav\"
>
view
\n" .
print "
<div
class=
\"page_nav\"
>
\n" .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$hash"}, "commit") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash"}, "
diffs
") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=commitdiff;h=$hash"}, "
commitdiff
") . " | " .
$cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=$hash"}, "tree") .
"
<br/><br/>
\n" .
"
</div>
\n";
...
...
@@ -1104,11 +1119,15 @@ sub git_history {
"
<span
class=
\"log_age\"
>
" . $co{'age_string'} . "
</span>
" . escapeHTML($co{'title'})) . "\n" .
"
</div>
\n";
print "
<div
class=
\"link\"
>
\n" .
"view " .
$cgi->a({-href => "$my_uri?p=$project;a=commit;h=$commit"}, "commit") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=tree;h=" . $co{'tree'} . ";hb=$commit"}, "tree") .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=blob;hb=$commit;f=" . $file}, "file") .
"
<br/><br/>
\n" .
" | " . $cgi->a({-href => "$my_uri?p=$project;a=blob;hb=$commit;f=" . $file}, "blob");
my $blob = git_get_hash_by_path($hash, $file_name);
my $blob_parent = git_get_hash_by_path($commit, $file_name);
if (defined $blob
&&
defined $blob_parent
&&
$blob ne $blob_parent) {
print " | " . $cgi->a({-href => "$my_uri?p=$project;a=blobdiff;h=$blob;hp=$blob_parent;hb=$commit;f=" . $file}, "diff");
}
print "
<br/>
\n" .
"
</div>
\n";
undef $commit;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录