git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] setup.c:verify_non_filename(): don't die unnecessarily while disambiguating
@ 2007-08-06  7:24 Junio C Hamano
  2007-08-06  8:03 ` Shawn O. Pearce
  0 siblings, 1 reply; 2+ messages in thread
From: Junio C Hamano @ 2007-08-06  7:24 UTC (permalink / raw)
  To: git; +Cc: spearce

If you have a working tree _file_ "foo", attempt to refer to a
branch "foo/bar" without -- to disambiguate, like this:

	$ git log foo/bar

tried to make sure that foo/bar cannot be naming a working tree
file "foo/bar" (in which case we would say "which one do you
want?  A rev or a working tree file?  clarify with -- please").
We run lstat("foo/bar") to check that.  If it does not succeed,
there is no ambiguity.

That is good.  But we also checked the error status for the
lstat() and expected it to fail with ENOENT.  For this
particular case, however, it fails with ENOTDIR.  That one
should be treated as "expected error" as well.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

 * This was from a real-life experience Shawn had.

 setup.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/setup.c b/setup.c
index a45ea83..2b8e8c0 100644
--- a/setup.c
+++ b/setup.c
@@ -103,7 +103,7 @@ void verify_non_filename(const char *prefix, const char *arg)
 	if (!lstat(name, &st))
 		die("ambiguous argument '%s': both revision and filename\n"
 		    "Use '--' to separate filenames from revisions", arg);
-	if (errno != ENOENT)
+	if (errno != ENOENT && errno != ENOTDIR)
 		die("'%s': %s", arg, strerror(errno));
 }
 
-- 
1.5.3.rc4.15.ga2c3d

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

end of thread, other threads:[~2007-08-06  8:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-06  7:24 [PATCH] setup.c:verify_non_filename(): don't die unnecessarily while disambiguating Junio C Hamano
2007-08-06  8:03 ` Shawn O. Pearce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).