Re: [PATCH] git-gui: fix file name handling with non-empty prefix

2013-05-30 Thread John Keeping
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:
 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 j...@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 e11..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 majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-gui: fix file name handling with non-empty prefix

2013-05-11 Thread Andrew Wong
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 j...@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 e11..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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] git-gui: fix file name handling with non-empty prefix

2013-04-27 Thread John Keeping
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 j...@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 e11..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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-gui: fix file name handling with non-empty prefix

2013-04-27 Thread John Keeping
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 j...@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 e11..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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html