Re: [PATCH] git-gui: fix file name handling with non-empty prefix
- From
John Keeping <john@keeping.me.uk>
- Date
- May 30, 2013, 15:55 UTC
- Message-ID
- <20130530155502.GE17475@serenity.lan>
- In-Reply-To
- <518EF86D.3060207@gmail.com>
In the hope that the Pat Thoyts who just posted in another thread from a GMail address is the same one that maintains git-gui, let's see if that address works...
On Sat, May 11, 2013 at 10:03:25PM -0400, Andrew Wong wrote:
Show 72 quoted lines
> Sorry for the late reply. I was able to reproduce the problem that you
> were describing a while ago. And your patch indeed fixes it. It's a much
> more elegant way of dealing with the "absolute vs relative" path problem
> that I was trying to fix.
>
> Thanks!
>
> As for Pat, I'm not sure wha'ts going on with his email address. It was
> working back in October, and his username still seems to be active over
> at SourceForge... let's see if this email reaches him.
>
> Here's a link for his reference just in case he missed your original email:
> http://thread.gmane.org/gmane.comp.version-control.git/222646
>
>
> On 04/27/13 10:18, John Keeping wrote:
> > I got a bounce with "550 no such user" for Pat's email address when
> > sending this. Does anyone have more up-to-date contact details? Or is
> > it just SourceForge being broken?
> >
> > On Sat, Apr 27, 2013 at 02:24:16PM +0100, John Keeping wrote:
> >> Commit e3d06ca (git-gui: Detect full path when parsing arguments -
> >> 2012-10-02) fixed the handling of absolute paths passed to the browser
> >> and blame subcommands by checking whether the file exists without the
> >> prefix before prepending the prefix and checking again. Since we have
> >> chdir'd to the top level of the working tree before doing this, this
> >> does not work if a file with the same name exists in a subdirectory and
> >> at the top level (for example Makefile in git.git's t/ directory).
> >>
> >> Instead of doing this, revert that patch and fix absolute path issue by
> >> using "file join" to prepend the prefix to the supplied path. This will
> >> correctly handle absolute paths by skipping the prefix in that case.
> >>
> >> Signed-off-by: John Keeping <john@keeping.me.uk>
> >> ---
> >> git-gui.sh | 14 +++-----------
> >> 1 file changed, 3 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/git-gui.sh b/git-gui.sh
> >> index e133331..a94ad7f 100755
> >> --- a/git-gui.sh
> >> +++ b/git-gui.sh
> >> @@ -3003,19 +3003,11 @@ blame {
> >> set jump_spec {}
> >> set is_path 0
> >> foreach a $argv {
> >> - if {[file exists $a]} {
> >> - if {$path ne {}} usage
> >> - set path [normalize_relpath $a]
> >> - break
> >> - } elseif {[file exists $_prefix$a]} {
> >> - if {$path ne {}} usage
> >> - set path [normalize_relpath $_prefix$a]
> >> - break
> >> - }
> >> + set p [file join $_prefix $a]
> >>
> >> - if {$is_path} {
> >> + if {$is_path || [file exists $p]} {
> >> if {$path ne {}} usage
> >> - set path [normalize_relpath $_prefix$a]
> >> + set path [normalize_relpath $p]
> >> break
> >> } elseif {$a eq {--}} {
> >> if {$path ne {}} {
> >> --
> >> 1.8.3.rc0.149.g98a72f2.dirty
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html