All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Git.pm: better error message
@ 2010-06-14  1:00 Philippe Bruhat (BooK)
  2010-06-14  7:10 ` Jeff King
  2010-06-17 23:47 ` Philippe Bruhat (BooK)
  0 siblings, 2 replies; 5+ messages in thread
From: Philippe Bruhat (BooK) @ 2010-06-14  1:00 UTC (permalink / raw)
  To: git; +Cc: Philippe Bruhat (BooK)

-d doesn't set $! if the directory doesn't exist

Signed-off-by: Philippe Bruhat (BooK) <book@cpan.org>
---
 perl/Git.pm |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/perl/Git.pm b/perl/Git.pm
index 1926dc9..2a3920b 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -172,7 +172,7 @@ sub repository {
 	}
 
 	if (defined $opts{Directory}) {
-		-d $opts{Directory} or throw Error::Simple("Directory not found: $!");
+		-d $opts{Directory} or throw Error::Simple("Directory not found: $opts{Directory}");
 
 		my $search = Git->repository(WorkingCopy => $opts{Directory});
 		my $dir;
@@ -545,7 +545,7 @@ sub wc_chdir {
 		or throw Error::Simple("bare repository");
 
 	-d $self->wc_path().'/'.$subdir
-		or throw Error::Simple("subdir not found: $!");
+		or throw Error::Simple("subdir not found: $subdir");
 	# Of course we will not "hold" the subdirectory so anyone
 	# can delete it now and we will never know. But at least we tried.
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] Git.pm: better error message
  2010-06-14  1:00 [PATCH] Git.pm: better error message Philippe Bruhat (BooK)
@ 2010-06-14  7:10 ` Jeff King
  2010-06-14  9:19   ` Philippe Bruhat (BooK)
  2010-06-17 23:47 ` Philippe Bruhat (BooK)
  1 sibling, 1 reply; 5+ messages in thread
From: Jeff King @ 2010-06-14  7:10 UTC (permalink / raw)
  To: Philippe Bruhat (BooK); +Cc: git

On Mon, Jun 14, 2010 at 03:00:22AM +0200, Philippe Bruhat (BooK) wrote:

> -d doesn't set $! if the directory doesn't exist

Really?

  $ perl -e '-d "bogus" or die "fail: $!"'
  fail: No such file or directory at -e line 1.

On the other hand:

  $ touch file
  perl -e '-d "file" or die "fail: $!"'
  fail:  at -e line 1.

So perhaps it is best not to rely on $!. Also, this is with perl 5.10.
Is it different with other versions?

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Git.pm: better error message
  2010-06-14  7:10 ` Jeff King
@ 2010-06-14  9:19   ` Philippe Bruhat (BooK)
  2010-06-14  9:20     ` Jeff King
  0 siblings, 1 reply; 5+ messages in thread
From: Philippe Bruhat (BooK) @ 2010-06-14  9:19 UTC (permalink / raw)
  To: Jeff King; +Cc: git

On Mon, Jun 14, 2010 at 03:10:46AM -0400, Jeff King wrote:
> On Mon, Jun 14, 2010 at 03:00:22AM +0200, Philippe Bruhat (BooK) wrote:
> 
> > -d doesn't set $! if the directory doesn't exist
> 
> Really?
> 
>   $ perl -e '-d "bogus" or die "fail: $!"'
>   fail: No such file or directory at -e line 1.
> 
> On the other hand:
> 
>   $ touch file
>   perl -e '-d "file" or die "fail: $!"'
>   fail:  at -e line 1.
> 
> So perhaps it is best not to rely on $!. Also, this is with perl 5.10.
> Is it different with other versions?

Come to think of it, it probably makes sense: -d probably depends on stat
to get the information about the file, and that fails harder when the
file in question doesn't exists.

I guess the best would be to put the directory name in the error message
(always interesting information), and keep $! in case it was set by an
harder error.

-- 
 Philippe Bruhat (BooK)

 There is no solution to a problem of sheer greed.
                                    (Moral from Groo The Wanderer #94 (Epic))

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Git.pm: better error message
  2010-06-14  9:19   ` Philippe Bruhat (BooK)
@ 2010-06-14  9:20     ` Jeff King
  0 siblings, 0 replies; 5+ messages in thread
From: Jeff King @ 2010-06-14  9:20 UTC (permalink / raw)
  To: Philippe Bruhat (BooK); +Cc: git

On Mon, Jun 14, 2010 at 11:19:16AM +0200, Philippe Bruhat (BooK) wrote:

> Come to think of it, it probably makes sense: -d probably depends on stat
> to get the information about the file, and that fails harder when the
> file in question doesn't exists.

Yeah, that makes sense to me.

> I guess the best would be to put the directory name in the error message
> (always interesting information), and keep $! in case it was set by an
> harder error.

Agreed.

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] Git.pm: better error message
  2010-06-14  1:00 [PATCH] Git.pm: better error message Philippe Bruhat (BooK)
  2010-06-14  7:10 ` Jeff King
@ 2010-06-17 23:47 ` Philippe Bruhat (BooK)
  1 sibling, 0 replies; 5+ messages in thread
From: Philippe Bruhat (BooK) @ 2010-06-17 23:47 UTC (permalink / raw)
  To: git; +Cc: Philippe Bruhat (BooK)

Provide the bad directory name alongside with $!

Note: $! is set if there is "No such file or directory",
but isn't set if the file exists but is not a directory.

Signed-off-by: Philippe Bruhat (BooK) <book@cpan.org>
---
 perl/Git.pm |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/perl/Git.pm b/perl/Git.pm
index 1926dc9..6cb0dd1 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -172,7 +172,7 @@ sub repository {
 	}
 
 	if (defined $opts{Directory}) {
-		-d $opts{Directory} or throw Error::Simple("Directory not found: $!");
+		-d $opts{Directory} or throw Error::Simple("Directory not found: $opts{Directory} $!");
 
 		my $search = Git->repository(WorkingCopy => $opts{Directory});
 		my $dir;
@@ -545,7 +545,7 @@ sub wc_chdir {
 		or throw Error::Simple("bare repository");
 
 	-d $self->wc_path().'/'.$subdir
-		or throw Error::Simple("subdir not found: $!");
+		or throw Error::Simple("subdir not found: $subdir $!");
 	# Of course we will not "hold" the subdirectory so anyone
 	# can delete it now and we will never know. But at least we tried.
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-06-17 23:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-14  1:00 [PATCH] Git.pm: better error message Philippe Bruhat (BooK)
2010-06-14  7:10 ` Jeff King
2010-06-14  9:19   ` Philippe Bruhat (BooK)
2010-06-14  9:20     ` Jeff King
2010-06-17 23:47 ` Philippe Bruhat (BooK)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.