@@ -172,7 +172,7 @@ sub repository {}if(defined$opts{Directory}){--d$opts{Directory}orthrowError::Simple("Directory not found: $!");+-d$opts{Directory}orthrowError::Simple("Directory not found: $opts{Directory}");my$search=Git->repository(WorkingCopy=>$opts{Directory});my$dir;
@@ -545,7 +545,7 @@ sub wc_chdir {orthrowError::Simple("bare repository");-d$self->wc_path().'/'.$subdir-orthrowError::Simple("subdir not found: $!");+orthrowError::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.
From: Jeff King <hidden> Date: 2016-06-15 22:48:57
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
From: Philippe Bruhat (BooK) <hidden> Date: 2016-06-15 22:48:57
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:
quoted
-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))
From: Jeff King <hidden> Date: 2016-06-15 22:48:57
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.
From: Philippe Bruhat (BooK) <hidden> Date: 2016-06-15 22:48:59
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) <redacted>
---
perl/Git.pm | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
@@ -172,7 +172,7 @@ sub repository {}if(defined$opts{Directory}){--d$opts{Directory}orthrowError::Simple("Directory not found: $!");+-d$opts{Directory}orthrowError::Simple("Directory not found: $opts{Directory} $!");my$search=Git->repository(WorkingCopy=>$opts{Directory});my$dir;
@@ -545,7 +545,7 @@ sub wc_chdir {orthrowError::Simple("bare repository");-d$self->wc_path().'/'.$subdir-orthrowError::Simple("subdir not found: $!");+orthrowError::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.