threads / patch / 25815

patchgit-gui: fix browser with initial path

Subject: [PATCH] git-gui: fix browser with initial path

## tl;dr

4 messages between Nov 23, 2010 and Jan 28, 2011. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Bert Wesarg· Nov 23, 2010, 07:37 UTC · lore

The path given to the browser does not end in a slash, which results in bad path given to blame and broke [Up To Parent]. Also the path was not escaped before displaying.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
---
 git-gui/lib/browser.tcl |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
Show changes to git-gui/lib/browser.tcl +7 −1
diff --git a/git-gui/lib/browser.tcl b/git-gui/lib/browser.tcl
index c241572..a88a68b 100644
--- a/git-gui/lib/browser.tcl
+++ b/git-gui/lib/browser.tcl
@@ -26,8 +26,14 @@ constructor new {commit {path {}}} {
 	wm withdraw $top
 	wm title $top [append "[appname] ([reponame]): " [mc "File Browser"]]
 
+	if {$path ne {}} {
+		if {[string index $path end] ne {/}} {
+			append path /
+		}
+	}
+
 	set browser_commit $commit
-	set browser_path $browser_commit:$path
+	set browser_path "$browser_commit:[escape_path $path]"
 
 	${NS}::label $w.path \
 		-textvariable @browser_path \
-- 
tg: (6f10c41..) bw/git-gui/fix-browser-up (depends on: master)
Bert Wesarg· Dec 10, 2010, 08:48 UTC · re: Bert Wesarg · lore

Re: [PATCH] git-gui: fix browser with initial path

Ping.
On Tue, Nov 23, 2010 at 08:37, Bert Wesarg <bert.wesarg@googlemail.com> wrote:
Show 33 quoted lines
> The path given to the browser does not end in a slash, which results in bad
> path given to blame and broke [Up To Parent]. Also the path was not
> escaped before displaying.
>
> Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
>
> ---
>  git-gui/lib/browser.tcl |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/git-gui/lib/browser.tcl b/git-gui/lib/browser.tcl
> index c241572..a88a68b 100644
> --- a/git-gui/lib/browser.tcl
> +++ b/git-gui/lib/browser.tcl
> @@ -26,8 +26,14 @@ constructor new {commit {path {}}} {
>        wm withdraw $top
>        wm title $top [append "[appname] ([reponame]): " [mc "File Browser"]]
>
> +       if {$path ne {}} {
> +               if {[string index $path end] ne {/}} {
> +                       append path /
> +               }
> +       }
> +
>        set browser_commit $commit
> -       set browser_path $browser_commit:$path
> +       set browser_path "$browser_commit:[escape_path $path]"
>
>        ${NS}::label $w.path \
>                -textvariable @browser_path \
> --
> tg: (6f10c41..) bw/git-gui/fix-browser-up (depends on: master)
>
Pat Thoyts· Jan 28, 2011, 10:42 UTC · re: Bert Wesarg · lore

Re: [PATCH] git-gui: fix browser with initial path

Bert Wesarg <bert.wesarg@googlemail.com> writes:
Show 37 quoted lines
>Ping.
>
>On Tue, Nov 23, 2010 at 08:37, Bert Wesarg <bert.wesarg@googlemail.com> wrote:
>> The path given to the browser does not end in a slash, which results in bad
>> path given to blame and broke [Up To Parent]. Also the path was not
>> escaped before displaying.
>>
>> Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
>>
>> ---
>>  git-gui/lib/browser.tcl |    8 +++++++-
>>  1 files changed, 7 insertions(+), 1 deletions(-)
>>
>> diff --git a/git-gui/lib/browser.tcl b/git-gui/lib/browser.tcl
>> index c241572..a88a68b 100644
>> --- a/git-gui/lib/browser.tcl
>> +++ b/git-gui/lib/browser.tcl
>> @@ -26,8 +26,14 @@ constructor new {commit {path {}}} {
>>        wm withdraw $top
>>        wm title $top [append "[appname] ([reponame]): " [mc "File Browser"]]
>>
>> +       if {$path ne {}} {
>> +               if {[string index $path end] ne {/}} {
>> +                       append path /
>> +               }
>> +       }
>> +
>>        set browser_commit $commit
>> -       set browser_path $browser_commit:$path
>> +       set browser_path "$browser_commit:[escape_path $path]"
>>
>>        ${NS}::label $w.path \
>>                -textvariable @browser_path \
>> --
>> tg: (6f10c41..) bw/git-gui/fix-browser-up (depends on: master)
>>
>

The commit comment for this doesn't really reflect whats being done. Commit 1ab8628 fixed the [Up To Parent] problem and this just fixes the display on the browser title.

So I plan to take this with the commit comment as:
 git-gui: fix display of path in browser title
 Ensure the browser path is shown on the title with a / suffix and escape
 any backslashes or newlines in path elements before display.
 Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
-- 
Pat Thoyts                            http://www.patthoyts.tk/
PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD
Bert Wesarg· Jan 28, 2011, 11:04 UTC · re: Pat Thoyts · lore

Re: [PATCH] git-gui: fix browser with initial path

On Fri, Jan 28, 2011 at 11:42, Pat Thoyts <patthoyts@users.sourceforge.net> wrote:

Show 10 quoted lines
> The commit comment for this doesn't really reflect whats being
> done. Commit 1ab8628 fixed the [Up To Parent] problem and this just
> fixes the display on the browser title.
>
> So I plan to take this with the commit comment as:
>
>  git-gui: fix display of path in browser title
>
>  Ensure the browser path is shown on the title with a / suffix and escape
>  any backslashes or newlines in path elements before display.

No, the main problem is, that the path does not end in a slash, but the browser code expect this, ie. it build sub pathes by just concatenating '$path' and '$file', or with '$dir/', without a slash inbetween. Its not only the visual part. Try this without the patch (int git.git):

git gui browse git-gui/

In the path line there should be now 'master:git-gui'. Than go into 'lib'. You have 'master:git-guilib/'. And than double click about.tcl, The blame view will get the 'git-guilib/about.tcl'.

Because the browser is itself consistent in this behavior, the only problem was when the browser was a path given to start with. And this path needs have a trailing slash. And this patch ensures this.

Bert
Show 8 quoted lines
>
>  Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
>
> --
> Pat Thoyts                            http://www.patthoyts.tk/
> PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD
>
>

← back to recent threads