Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Accommodate new git-diff-tree output format
author
Paul Mackerras
<paulus@samba.org>
Thu, 19 May 2005 12:35:53 +0000
(12:35 +0000)
committer
Paul Mackerras
<paulus@samba.org>
Thu, 19 May 2005 12:35:53 +0000
(12:35 +0000)
Add 'f' key for moving to next file
gitk
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
5842215
)
diff --git
a/gitk
b/gitk
index 7a46b872f43cc40a2f380f5ac7d8586ed96dafac..8d25c32d653f9ffd30cb8c6543c33212de1d89c9 100755
(executable)
--- a/
gitk
+++ b/
gitk
@@
-7,7
+7,7
@@
exec wish "$0" -- "${1+$@}"
# and distributed under the terms of the GNU General Public Licence,
# either version 2, or (at your option) any later version.
# and distributed under the terms of the GNU General Public Licence,
# either version 2, or (at your option) any later version.
-# CVS $Revision: 1.1
6
$
+# CVS $Revision: 1.1
7
$
proc getcommits {rargs} {
global commits commfd phase canv mainfont
proc getcommits {rargs} {
global commits commfd phase canv mainfont
@@
-257,6
+257,7
@@
proc makewindow {} {
bindkey u "$ctext yview scroll -18 u"
bindkey / findnext
bindkey ? findprev
bindkey u "$ctext yview scroll -18 u"
bindkey / findnext
bindkey ? findprev
+ bindkey f nextfile
bind . <Control-q> doquit
bind . <Control-f> dofind
bind . <Control-g> findnext
bind . <Control-q> doquit
bind . <Control-f> dofind
bind . <Control-g> findnext
@@
-401,7
+402,7
@@
Copyright
Use and redistribute under the terms of the GNU General Public License
Use and redistribute under the terms of the GNU General Public License
-(CVS $Revision: 1.1
6
$)} \
+(CVS $Revision: 1.1
7
$)} \
-justify center -aspect 400
pack $w.m -side top -fill x -padx 20 -pady 20
button $w.ok -text Close -command "destroy $w"
-justify center -aspect 400
pack $w.m -side top -fill x -padx 20 -pady 20
button $w.ok -text Close -command "destroy $w"
@@
-1022,6
+1023,7
@@
proc gettreediffline {gdtf id} {
proc getblobdiffs {id} {
global parents diffopts blobdifffd env curdifftag curtagstart
proc getblobdiffs {id} {
global parents diffopts blobdifffd env curdifftag curtagstart
+ global diffindex difffilestart
set p [lindex $parents($id) 0]
set env(GIT_DIFF_OPTS) $diffopts
if [catch {set bdf [open "|git-diff-tree -r -p $p $id" r]} err] {
set p [lindex $parents($id) 0]
set env(GIT_DIFF_OPTS) $diffopts
if [catch {set bdf [open "|git-diff-tree -r -p $p $id" r]} err] {
@@
-1032,12
+1034,14
@@
proc getblobdiffs {id} {
set blobdifffd($id) $bdf
set curdifftag Comments
set curtagstart 0.0
set blobdifffd($id) $bdf
set curdifftag Comments
set curtagstart 0.0
+ set diffindex 0
+ catch {unset difffilestart}
fileevent $bdf readable "getblobdiffline $bdf $id"
}
proc getblobdiffline {bdf id} {
global currentid blobdifffd ctext curdifftag curtagstart seenfile
fileevent $bdf readable "getblobdiffline $bdf $id"
}
proc getblobdiffline {bdf id} {
global currentid blobdifffd ctext curdifftag curtagstart seenfile
- global diffnexthead diffnextnote
+ global diffnexthead diffnextnote
diffindex difffilestart
set n [gets $bdf line]
if {$n < 0} {
if {[eof $bdf]} {
set n [gets $bdf line]
if {$n < 0} {
if {[eof $bdf]} {
@@
-1065,6
+1069,8
@@
proc getblobdiffline {bdf id} {
set header "$diffnexthead ($diffnextnote)"
unset diffnexthead
}
set header "$diffnexthead ($diffnextnote)"
unset diffnexthead
}
+ set difffilestart($diffindex) [$ctext index "end - 1c"]
+ incr diffindex
set curdifftag "f:$fname"
$ctext tag delete $curdifftag
set l [expr {(78 - [string length $header]) / 2}]
set curdifftag "f:$fname"
$ctext tag delete $curdifftag
set l [expr {(78 - [string length $header]) / 2}]
@@
-1078,6
+1084,14
@@
proc getblobdiffline {bdf id} {
} elseif {[string range $line 0 8] == "Deleted: "} {
set diffnexthead [string range $line 9 end]
set diffnextnote "deleted"
} elseif {[string range $line 0 8] == "Deleted: "} {
set diffnexthead [string range $line 9 end]
set diffnextnote "deleted"
+ } elseif {[regexp {^diff --git a/(.*) b/} $line match fn]} {
+ # save the filename in case the next thing is "new file mode ..."
+ set diffnexthead $fn
+ set diffnextnote "modified"
+ } elseif {[regexp {^new file mode ([0-7]+)} $line match m]} {
+ set diffnextnote "new file, mode $m"
+ } elseif {[string range $line 0 11] == "deleted file"} {
+ set diffnextnote "deleted"
} elseif {[regexp {^@@ -([0-9]+),([0-9]+) \+([0-9]+),([0-9]+) @@(.*)} \
$line match f1l f1c f2l f2c rest]} {
$ctext insert end "\t" hunksep
} elseif {[regexp {^@@ -([0-9]+),([0-9]+) \+([0-9]+),([0-9]+) @@(.*)} \
$line match f1l f1c f2l f2c rest]} {
$ctext insert end "\t" hunksep
@@
-1110,6
+1124,17
@@
proc getblobdiffline {bdf id} {
$ctext conf -state disabled
}
$ctext conf -state disabled
}
+proc nextfile {} {
+ global difffilestart ctext
+ set here [$ctext index @0,0]
+ for {set i 0} {[info exists difffilestart($i)]} {incr i} {
+ if {[$ctext compare $difffilestart($i) > $here]} {
+ $ctext yview $difffilestart($i)
+ break
+ }
+ }
+}
+
proc listboxsel {} {
global ctext cflist currentid treediffs seenfile
if {![info exists currentid]} return
proc listboxsel {} {
global ctext cflist currentid treediffs seenfile
if {![info exists currentid]} return