Subject: Re: [PATCH/RFC] Documentation: Say that submodule clones use a separate gitdirs.

From: Henri GEIST <[email-masked]>
Date: Sat, 08 Mar 2014 01:50:52 +0100

Le vendredi 07 mars 2014 à 15:37 -0800, Junio C Hamano a écrit :
> Henri GEIST <[email-masked]> writes:
> 
> > This information is technical in nature but has some importance for general users.
> > As this kind of clone have a separate gitdir, you will have a surprise if you
> > copy past the worktree as the gitdir will not come together.
> 
> I am not sure if I understand exactly what you are trying to say.
> Are you saying that you had a submodule at "sub/dir" in your working
> tree, and then "mkdir ../another && cp -R sub/dir ../another" did
> not result in a usable Git working tree in ../another directory?
> 
> It is almost like complaining that "mkdir ../newone && cp -R * ../newone/"
> did not result in a usable git repository in ../newone directory and
> honestly speaking, that sounds borderline insane, I'd have to say.
> 
> Yes, if a user knows what she is doing, she should be able to make
> something like that work, without running "git clone" (which is
> probably the way most users would do it).  And yes, it would be good
> to let the user learn from the documentation enough so that she
> "knows what she is doing".  But no, I do not think end-user facing
> documentation for "git-submodule" subcommand is the way to do that.
> 
> That is why I suggested repository-layout as potentially a better
> alternative location.
> 
> But perhaps I am mis-reading your rationale.
> 
> 

Let me rephrase my example :

To give one of my project to someone else I have copied it on a USB key.
By a simple drag and drop with the mouse.
And I am quite sure I am not alone doing this way.

I have done those kind of things lot of time without any problem.
But that day 'the_project' happened to be a submodule cloned by
'git submodule update' then on the USB key the $GIT_DIR of 'the_project'
was missing.

If 'man git-submodule' have made me aware of the particularities of submodules
clone I had write in a terminal:

git clone the_project /media/usb/the_project

Or at least I had understand what happened quicker.

I have nothing against also adding something in repository-layout but I am
pretty sure normal users never read repository-layout as it is not a command
they use. And it is not mentioned in most tutorials.