Re: [PATCH] gitk: do not limit tree mode listing in the file list panel to current sub-directory
From: Bert Wesarg <hidden>
Date: 2018-05-09 12:08:57
Thanks. On Wed, May 9, 2018 at 12:59 PM, Alex Riesen [off-list ref] wrote:
From: Alex Riesen <redacted> The previous behavior conflicts with the "Patch" mode of the panel, which always shows the changes from the top-level of the repository. It is also impossible to get back to the full listing without restarting gitk. --- Bert Wesarg, Wed, May 09, 2018 09:19:55 +0200:quoted
quoted
Frankly, this listing limited to just a sub-directory confuses me a bit. Is there anyway to get to display full repository without changing to the top level?I noticed that too, while testing your patch and I'm also confused. But was not able to send a request to Paul yet. ls-tree --full-tree seems to be one that should be used here, I think.Well, I just tried your suggestion. 'ls-files' doesn't have --full-tree, so for those it is just cd-up. It is on top of the re-sent series.
I would consider the current behavior as a bug, therefor I would put this patch first, and than your other fixes/enhancements.
quoted hunk ↗ jump to hunk
gitk | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)diff --git a/gitk b/gitk index c430dfe..03ead98 100755 --- a/gitk +++ b/gitk@@ -7600,18 +7600,18 @@ proc go_to_parent {i} { proc gettree {id} { global treefilelist treeidlist diffids diffmergeid treepending - global nullid nullid2 + global nullid nullid2 cdup set diffids $id unset -nocomplain diffmergeid if {![info exists treefilelist($id)]} { if {![info exists treepending]} { if {$id eq $nullid} { - set cmd [list | git ls-files] + set cmd [list | git -C $cdup ls-files] } elseif {$id eq $nullid2} { - set cmd [list | git ls-files --stage -t] + set cmd [list | git -C $cdup ls-files --stage -t] } else { - set cmd [list | git ls-tree -r $id] + set cmd [list | git ls-tree --full-tree -r $id] } if {[catch {set gtf [open $cmd r]}]} { return@@ -7670,7 +7670,7 @@ proc gettreeline {gtf id} { proc showfile {f} { global treefilelist treeidlist diffids nullid nullid2 global ctext_file_names ctext_file_lines - global ctext commentend + global ctext commentend cdup set submodlog "log --format=%h\\ %aN:\\ %s -100" set fcmt ""@@ -7680,15 +7680,15 @@ proc showfile {f} { return } if {$diffids eq $nullid} { - if {[file isdirectory $f]} { + if {[file isdirectory "$cdup$f"]} { # a submodule - set qf [shellquote $f] + set qf [shellquote "$cdup$f"] if {[catch {set bf [open "| git -C $qf $submodlog" r]} err]} { puts "oops, can't read submodule $f: $err" return } } else { - if {[catch {set bf [open $f r]} err]} { + if {[catch {set bf [open "$cdup$f" r]} err]} { puts "oops, can't read $f: $err" return }@@ -7704,7 +7704,7 @@ proc showfile {f} { } } else { # also a submodule - set qf [shellquote $f] + set qf [shellquote "$cdup$f"] if {[catch {set bf [open "| git -C $qf $submodlog $blob" r]} err]} { puts "oops, error reading submodule commit: $err" return --2.17.0.593.g2029711e64 --- Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft. https://www.avast.com/antivirus