From: Alex Riesen <alexander.riesen@cetitec.com>
To: Paul Mackerras <paulus@ozlabs.org>
Cc: Git Mailing List <git@vger.kernel.org>,
Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 1/2] gitk: show part of submodule log instead of empty pane when listing trees
Date: Tue, 8 May 2018 14:22:29 +0200 [thread overview]
Message-ID: <20180508122229.k3n3ccpa5g3g4dxa@pflmari> (raw)
In-Reply-To: <20180508121104.rtsrektxiihvpqtx@pflmari>
From: Alex Riesen <raa.lkml@gmail.com>
Currently, the submodules either are not shown at all (if listing a
committed tree) or a Tcl error appears (when clicking on a submodule
from the index list).
This will make it show first arbitrarily chosen number of commits,
which might be only marginally better.
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
---
gitk | 42 ++++++++++++++++++++++++++++++++----------
1 file changed, 32 insertions(+), 10 deletions(-)
diff --git a/gitk b/gitk
index a14d7a1..d34833f 100755
--- a/gitk
+++ b/gitk
@@ -7627,9 +7627,10 @@ proc gettreeline {gtf id} {
if {$i < 0} continue
set fname [string range $line [expr {$i+1}] end]
set line [string range $line 0 [expr {$i-1}]]
- if {$diffids ne $nullid2 && [lindex $line 1] ne "blob"} continue
+ set objtype [lindex $line 1]
+ if {$diffids ne $nullid2 && $objtype ne "blob" && $objtype ne "commit" } { continue }
set sha1 [lindex $line 2]
- lappend treeidlist($id) $sha1
+ lappend treeidlist($id) "$sha1 $objtype"
}
if {[string index $fname 0] eq "\""} {
set fname [lindex $fname 0]
@@ -7659,21 +7660,42 @@ proc showfile {f} {
global ctext_file_names ctext_file_lines
global ctext commentend
+ set submodlog "git\\ log\\ --format='%h\\ %aN:\\ %s'\\ -100"
+ set fcmt ""
set i [lsearch -exact $treefilelist($diffids) $f]
if {$i < 0} {
puts "oops, $f not in list for id $diffids"
return
}
if {$diffids eq $nullid} {
- if {[catch {set bf [open $f r]} err]} {
- puts "oops, can't read $f: $err"
- return
+ if {[file isdirectory $f]} {
+ # a submodule
+ if {[catch {set bf [open "| sh -c cd\\ \"$f\"&&$submodlog" r]} err]} {
+ puts "oops, can't read submodule $f: $err"
+ return
+ }
+ } else {
+ if {[catch {set bf [open $f r]} err]} {
+ puts "oops, can't read $f: $err"
+ return
+ }
}
} else {
- set blob [lindex $treeidlist($diffids) $i]
- if {[catch {set bf [open [concat | git cat-file blob $blob] r]} err]} {
- puts "oops, error reading blob $blob: $err"
- return
+ set bo [lindex $treeidlist($diffids) $i]
+ set blob [lindex $bo 0]
+ set objtype [lindex $bo 1]
+ if { "$objtype" eq "blob" } {
+ if {[catch {set bf [open [concat | git cat-file blob $blob] r]} err]} {
+ puts "oops, error reading blob $blob: $err"
+ return
+ }
+ } else {
+ # also a submodule
+ if {[catch {set bf [open "| sh -c cd\\ \"$f\"&&$submodlog\\ $blob" r]} err]} {
+ puts "oops, error reading submodule commit: $err"
+ return
+ }
+ set fcmt "/"
}
}
fconfigure $bf -blocking 0 -encoding [get_path_encoding $f]
@@ -7683,7 +7705,7 @@ proc showfile {f} {
lappend ctext_file_names $f
lappend ctext_file_lines [lindex [split $commentend "."] 0]
$ctext insert end "\n"
- $ctext insert end "$f\n" filesep
+ $ctext insert end "$f$fcmt\n" filesep
$ctext config -state disabled
$ctext yview $commentend
settabs 0
--
2.17.0.rc1.56.gb9824190bd
---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
next prev parent reply other threads:[~2018-05-08 12:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-08 12:11 [PATCH 0/2] gitk: improve handling of submodules in the file list panel Alex Riesen
2018-05-08 12:22 ` Alex Riesen [this message]
2018-05-08 17:07 ` [PATCH 1/2] gitk: show part of submodule log instead of empty pane when listing trees Stefan Beller
2018-05-09 9:01 ` Alex Riesen
2018-05-08 12:22 ` [PATCH 2/2] gitk: add an option to run gitk on an item in the file list Alex Riesen
2018-05-08 13:17 ` Bert Wesarg
2018-05-08 13:39 ` Alex Riesen
2018-05-09 7:19 ` Bert Wesarg
2018-05-09 10:59 ` [PATCH] gitk: do not limit tree mode listing in the file list panel to current sub-directory Alex Riesen
2018-05-09 12:08 ` Bert Wesarg
2018-05-09 12:14 ` Alex Riesen
2018-05-09 12:35 ` [PATCH v2 0/2] gitk: improve handling of submodules in the file list panel Alex Riesen
2018-05-09 12:35 ` [PATCH v2 1/2] gitk: show part of submodule log instead of empty pane when listing trees Alex Riesen
2018-05-09 12:35 ` [PATCH v2 2/2] gitk: add an option to run gitk on an item in the file list Alex Riesen
2018-05-09 18:52 ` [PATCH v2 0/2] gitk: improve handling of submodules in the file list panel Stefan Beller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180508122229.k3n3ccpa5g3g4dxa@pflmari \
--to=alexander.riesen@cetitec.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=paulus@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).