From: Junio C Hamano Date: Mon, 18 Jun 2012 22:25:04 GMT Subject: Re: [PATCH 2/2 v2] verify_filename: ask the caller to chose the kind of diagnosis Message-ID: <7vipeo2r7j.fsf@alter.siamese.dyndns.org> In-Reply-To: <1340043501-6170-2-git-send-email-Matthieu.Moy@imag.fr> Matthieu Moy writes: > verify_filename can be called in two different contexts. Either we just > tried to interpret a string as an object name, and it fails, so we try > looking for a working tree file as a fallback, or we _know_ that we are > looking for a filename, and shouldn't even try interpreting the string as > an object name. > > For example, with this change, we get: > > $ git log COPYING HEAD:inexistant > fatal: HEAD:inexistant: no such path in the working tree. > Use '-- ...' to specify paths that do not exist locally. > $ git log HEAD:inexistant > fatal: Path 'inexistant' does not exist in 'HEAD' > > Signed-off-by: Matthieu Moy > --- Thanks; both patches look sensible (modulo minor nits below). Will queue with a local fix-up. > @@ -80,14 +86,28 @@ static void NORETURN die_verify_filename(const char *prefix, const char *arg) > * as true, because even if such a filename were to exist, we want > * it to be preceded by the "--" marker (or we want the user to > * use a format like "./-filename") > + * > + * The "diagnose_misspelt_rev" is used to provide a user-friendly > + * diagnosis. If 0, the diagnosis will try to diagnose "name" as an > + * invalid object name (e.g. HEAD:foo). If non-zero, the diagnosis > + * will only complain about an inexisting file. I have a feeling that "if 0/if non-zero" above are backwards.