Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
git
提交
638ccfdf
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,发现更多精彩内容 >>
提交
638ccfdf
编写于
8月 05, 2005
作者:
J
Junio C Hamano
浏览文件
操作
浏览文件
下载
差异文件
Merge with gitk.
上级
1eef0b33
8d858d1a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
81 addition
and
28 deletion
+81
-28
gitk
gitk
+81
-28
未找到文件。
gitk
浏览文件 @
638ccfdf
...
...
@@ -480,7 +480,7 @@ proc click {w} {
proc savestuff
{
w
}
{
global canv canv2 canv3 ctext cflist mainfont textfont
global stuffsaved findmergefiles gaudydiff
global stuffsaved findmergefiles gaudydiff
maxgraphpct
if
{
$stuffsaved
}
return
if
{
!
[
winfo viewable .
]}
return
...
...
@@ -490,6 +490,7 @@ proc savestuff {w} {
puts $f
[
list set textfont $textfont
]
puts $f
[
list set findmergefiles $findmergefiles
]
puts $f
[
list set gaudydiff $gaudydiff
]
puts $f
[
list set maxgraphpct $maxgraphpct
]
puts $f
"set geometry(width)
[
winfo width .ctop
]
"
puts $f
"set geometry(height)
[
winfo height .ctop
]
"
puts $f
"set geometry(canv1)
[
expr
[
winfo width $canv
]
-2
]
"
...
...
@@ -694,7 +695,7 @@ proc bindline {t id} {
proc drawcommitline
{
level
}
{
global parents children nparents nchildren todo
global canv canv2 canv3 mainfont namefont canv
x0 canv
y linespc
global canv canv2 canv3 mainfont namefont canvy linespc
global lineid linehtag linentag linedtag commitinfo
global colormap numcommits currentparents dupparents
global oldlevel oldnlines oldtodo
...
...
@@ -728,7 +729,7 @@ proc drawcommitline {level} {
}
}
}
set x
[
expr $canvx0 + $level * $linespc
]
set x
[
xcoord $level $level $lineno
]
set y1 $canvy
set canvy
[
expr $canvy + $linespc
]
allcanvs conf -scrollregion
\
...
...
@@ -756,7 +757,7 @@ proc drawcommitline {level} {
-fill $ofill -outline black -width 1
]
$canv raise $t
$canv bind $t <1>
{
selcanvline
{}
%x %y
}
set xt
[
expr $canvx0 +
[
llength $todo
]
* $linespc
]
set xt
[
xcoord
[
llength $todo
]
$level $lineno
]
if
{[
llength $currentparents
]
> 2
}
{
set xt
[
expr
{
$xt
+
([
llength $currentparents
]
- 2
)
* $linespc
}]
}
...
...
@@ -832,8 +833,8 @@ proc drawtags {id x xt y1} {
proc updatetodo
{
level noshortcut
}
{
global currentparents ncleft todo
global mainline oldlevel oldtodo oldnlines
global canv
x0 canv
y linespc mainline
global commitinfo
global canvy linespc mainline
global commitinfo
lineno xspc1
set oldlevel $level
set oldtodo $todo
...
...
@@ -842,10 +843,11 @@ proc updatetodo {level noshortcut} {
set p
[
lindex $currentparents 0
]
if
{
$ncleft
(
$p
)
== 1 &&
[
lsearch -exact $todo $p
]
< 0
}
{
set ncleft
(
$p
)
0
set x
[
expr $canvx0 + $level * $linespc
]
set x
[
xcoord $level $level $lineno
]
set y
[
expr $canvy - $linespc
]
set mainline
(
$p
)
[
list $x $y
]
set todo
[
lreplace $todo $level $level $p
]
set xspc1
([
expr
{
$lineno
+ 1
}])
$xspc1
(
$lineno
)
return 0
}
}
...
...
@@ -891,28 +893,54 @@ proc notecrossings {id lo hi corner} {
}
}
proc drawslants
{}
{
global canv mainline sidelines canvx0 canvy linespc
global oldlevel oldtodo todo currentparents dupparents
global lthickness linespc canvy colormap
proc xcoord
{
i level ln
}
{
global canvx0 xspc1 xspc2
set x
[
expr
{
$canvx0
+ $i * $xspc1
(
$ln
)}]
if
{
$i
> 0 && $i == $level
}
{
set x
[
expr
{
$x
+ 0.5 *
(
$xspc2
- $xspc1
(
$ln
))}]
}
elseif
{
$i
> $level
}
{
set x
[
expr
{
$x
+ $xspc2 - $xspc1
(
$ln
)}]
}
return $x
}
proc drawslants
{
level
}
{
global canv mainline sidelines canvx0 canvy xspc1 xspc2 lthickness
global oldlevel oldtodo todo currentparents dupparents
global lthickness linespc canvy colormap lineno geometry
global maxgraphpct
# decide on the line spacing for the next line
set lj
[
expr
{
$lineno
+ 1
}]
set maxw
[
expr
{
$maxgraphpct
* $geometry
(
canv1
)
/ 100
}]
set n
[
llength $todo
]
if
{
$n
<= 1 || $canvx0 + $n * $xspc2 <= $maxw
}
{
set xspc1
(
$lj
)
$xspc2
}
else
{
set xspc1
(
$lj
)
[
expr
{(
$maxw
- $canvx0 - $xspc2
)
/
(
$n
- 1
)}]
if
{
$xspc1
(
$lj
)
< $lthickness
}
{
set xspc1
(
$lj
)
$lthickness
}
}
set y1
[
expr $canvy - $linespc
]
set y2 $canvy
set i -1
foreach id $oldtodo
{
incr i
if
{
$id
==
{}}
continue
set xi
[
expr
{
$canvx0
+ $i * $linespc
}
]
set xi
[
xcoord $i $oldlevel $lineno
]
if
{
$i
== $oldlevel
}
{
foreach p $currentparents
{
set j
[
lsearch -exact $todo $p
]
set coords
[
list $xi $y1
]
set xj
[
expr
{
$canvx0
+ $j * $linespc
}
]
if
{
$
j
< $i - 1
}
{
lappend coords
[
expr
$xj + $linespc
]
$y1
set xj
[
xcoord $j $level $lj
]
if
{
$
xj
< $xi - $linespc
}
{
lappend coords
[
expr
{
$xj
+ $linespc
}
]
$y1
notecrossings $p $j $i
[
expr
{
$j
+ 1
}]
}
elseif
{
$
j
> $i + 1
}
{
lappend coords
[
expr
$xj - $linespc
]
$y1
}
elseif
{
$
xj
> $xi + $linespc
}
{
lappend coords
[
expr
{
$xj
- $linespc
}
]
$y1
notecrossings $p $i $j
[
expr
{
$j
- 1
}]
}
if
{[
lsearch -exact $dupparents $p
]
>= 0
}
{
...
...
@@ -924,28 +952,48 @@ proc drawslants {} {
}
}
else
{
# normal case, no parent duplicated
set yb $y2
set dx
[
expr
{
abs
(
$xi
- $xj
)}]
if
{
0 && $dx < $linespc
}
{
set yb
[
expr
{
$y1
+ $dx
}]
}
if
{
!
[
info exists mainline
(
$p
)]}
{
if
{
$
i
!= $
j
}
{
lappend coords $xj $y
2
if
{
$
xi
!= $x
j
}
{
lappend coords $xj $y
b
}
set mainline
(
$p
)
$coords
}
else
{
lappend coords $xj $y2
lappend coords $xj $yb
if
{
$yb
< $y2
}
{
lappend coords $xj $y2
}
lappend sidelines
(
$p
)
[
list $coords 1
]
}
}
}
}
elseif
{[
lindex $todo $i
]
!= $id
}
{
set j
[
lsearch -exact $todo $id
]
set xj
[
expr
{
$canvx0
+ $j * $linespc
}]
lappend mainline
(
$id
)
$xi
$y1
$xj
$y2
}
else
{
set j $i
if
{[
lindex $todo $i
]
!= $id
}
{
set j
[
lsearch -exact $todo $id
]
}
if
{
$j
!= $i || $xspc1
(
$lineno
)
!= $xspc1
(
$lj
)
||
(
$oldlevel
<= $i && $i <= $level
)
||
(
$level
<= $i && $i <= $oldlevel
)}
{
set xj
[
xcoord $j $level $lj
]
set dx
[
expr
{
abs
(
$xi
- $xj
)}]
set yb $y2
if
{
0 && $dx < $linespc
}
{
set yb
[
expr
{
$y1
+ $dx
}]
}
lappend mainline
(
$id
)
$xi
$y1
$xj
$yb
}
}
}
}
proc decidenext
{{
noread 0
}}
{
global parents children nchildren ncleft todo
global canv canv2 canv3 mainfont namefont canv
x0 canv
y linespc
global canv canv2 canv3 mainfont namefont canvy linespc
global datemode cdate
global commitinfo
global currentparents oldlevel oldnlines oldtodo
...
...
@@ -1036,7 +1084,7 @@ proc drawcommit {id} {
return
}
while 1
{
drawslants
drawslants
$level
drawcommitline $level
if
{[
updatetodo $level $datemode
]}
{
set level
[
decidenext 1
]
...
...
@@ -1065,8 +1113,8 @@ proc finishcommits {} {
-font $mainfont -tags textitems
set phase
{}
}
else
{
drawslants
set level
[
decidenext
]
drawslants $level
drawrest $level
[
llength $startcommits
]
}
. config -cursor $maincursor
...
...
@@ -1114,7 +1162,7 @@ proc drawrest {level startix} {
if
{
$hard
}
{
set level
[
decidenext
]
if
{
$level
< 0
}
break
drawslants
drawslants
$level
}
if
{[
clock clicks -milliseconds
]
>= $nextupdate
}
{
update
...
...
@@ -2451,10 +2499,14 @@ proc listboxsel {} {
proc setcoords
{}
{
global linespc charspc canvx0 canvy0 mainfont
global xspc1 xspc2
set linespc
[
font metrics $mainfont -linespace
]
set charspc
[
font measure $mainfont
"m"
]
set canvy0
[
expr 3 + 0.5 * $linespc
]
set canvx0
[
expr 3 + 0.5 * $linespc
]
set xspc1
(
0
)
$linespc
set xspc2 $linespc
}
proc redisplay
{}
{
...
...
@@ -2941,6 +2993,7 @@ set mainfont {Helvetica 9}
set textfont
{
Courier 9
}
set findmergefiles 0
set gaudydiff 0
set maxgraphpct 50
set colors
{
green red blue magenta darkgrey brown orange
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录