git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Aaron Schrab <aaron@schrab.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 1/2] clone: Fix error message for reference repository
Date: Sun, 7 Apr 2013 20:06:58 -0400	[thread overview]
Message-ID: <20130408000658.GG27178@pug.qqx.org> (raw)
In-Reply-To: <20130407234810.GG19857@elie.Belkin>

At 16:48 -0700 07 Apr 2013, Jonathan Nieder <jrnieder@gmail.com> wrote:
>Hi Aaron,

Thanks for the feedback.

>Aaron Schrab wrote:
>
>> Do not report an argument to clone's --reference option is not a local
>> directory.  Nothing checks for the actual directory so we have no way to
>> know if whether or not exists.  Telling the user that a directory doesn't
>> exist when that isn't actually known may lead him or her on the wrong
>> path to finding the problem.
>
>I don't understand the above explanation.  Could you give an example?

I originally noticed this while trying to use a submodule as a reference 
repository.  Since that submodule was first checked out using a recent 
version of git it used a .git file rather than having a .git directory.  
This caused the checks to fail, and the misleading error message had me 
checking for a typo in the path which I'd supplied.

I'll attempt to clarify that message in the next version.

>> --- a/builtin/clone.c
>> +++ b/builtin/clone.c
>> @@ -241,7 +241,7 @@ static int add_one_reference(struct string_list_item *item, void *cb_data)
>>  		free(ref_git);
>>  		ref_git = ref_git_git;
>>  	} else if (!is_directory(mkpath("%s/objects", ref_git)))
>> -		die(_("reference repository '%s' is not a local directory."),
>> +		die(_("reference repository '%s' is not a local repository."),
>
>"is_directory" calls stat and checks if its target is a directory.  Is
>the problem that "/path/to/repo.git" might be a directory but
>"/path/to/repo.git/objects" may not?

In my case the issue was that /path/to/repo is a directory, but 
/path/to/repo/.git/objects (which is checked shortly before the above 
context) didn't exist since /path/to/repo/.git is a file.

>Would it make sense for the message to say something like the
>following?
>
>	fatal: alternate object store '/path/to/repo.git/objects' is not a local directory

That would also avoid lying to the user.  But if combined with the 
second patch in this series it could cause confusion for a different 
reason.  Once .git files are honored, the path reported there may have 
no relation to the path supplied by the user.

  reply	other threads:[~2013-04-08  6:47 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-07 23:17 [PATCH 1/2] clone: Fix error message for reference repository Aaron Schrab
2013-04-07 23:17 ` [PATCH 2/2] clone: Allow repo using gitfile as a reference Aaron Schrab
2013-04-07 23:51   ` Jonathan Nieder
2013-04-08  0:08     ` Aaron Schrab
2013-04-08 18:00       ` Junio C Hamano
2013-04-08 18:59         ` Aaron Schrab
2013-04-08 22:46           ` [PATCH v2 0/2] Using gitfile repository with clone --reference Aaron Schrab
2013-04-08 22:46             ` [PATCH 1/2] clone: Fix error message for reference repository Aaron Schrab
2013-04-09  0:18               ` Jonathan Nieder
2013-04-08 22:46             ` [PATCH 2/2] clone: Allow repo using gitfile as a reference Aaron Schrab
2013-04-09  0:24               ` Jonathan Nieder
2013-04-09 16:31                 ` Aaron Schrab
2013-04-09 16:47                   ` Junio C Hamano
2013-04-09 16:50                     ` Aaron Schrab
2013-04-09 22:21                     ` [PATCH v3 0/2] Using gitfile repository with clone --reference Aaron Schrab
2013-04-09 22:21                       ` [PATCH v3 1/2] clone: Fix error message for reference repository Aaron Schrab
2013-04-09 22:22                       ` [PATCH v3 2/2] clone: Allow repo using gitfile as a reference Aaron Schrab
2013-04-09 22:41                       ` [PATCH v3 0/2] Using gitfile repository with clone --reference Junio C Hamano
2013-04-07 23:48 ` [PATCH 1/2] clone: Fix error message for reference repository Jonathan Nieder
2013-04-08  0:06   ` Aaron Schrab [this message]
2013-04-08  1:11     ` Aaron Schrab
2013-04-08 13:58     ` Junio C Hamano
2013-04-08 14:57       ` Aaron Schrab
2013-04-08 15:30         ` Junio C Hamano
2013-04-08 16:17           ` Aaron Schrab
2013-04-08 17:57             ` Junio C Hamano
2013-04-08 18:58               ` Aaron Schrab
2013-04-08 19:10                 ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130408000658.GG27178@pug.qqx.org \
    --to=aaron@schrab.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).