Re: [PATCH] gitk: do not limit tree mode listing in the file list panel to current sub-directory
- From
Bert Wesarg <bert.wesarg@googlemail.com>
- Date
- May 9, 2018, 12:08 UTC
- Message-ID
- <CAKPyHN0iQh=UJOX-8u4PO1ON9SW+G1gBCGh25FJ_RyoGk906QQ@mail.gmail.com>
- In-Reply-To
- <56ccabf699cdc6e15c5dcb73db5692180c79906d.1525863290.git.raa.lkml@gmail.com>
Thanks.
On Wed, May 9, 2018 at 12:59 PM, Alex Riesen <alexander.riesen@cetitec.com> wrote:
Show 21 quoted lines
> From: Alex Riesen <raa.lkml@gmail.com> > > 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: >> > 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.
Show 76 quoted lines
>
> 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
>