Subject: Re: Adding default remotes to a bare repository

From: Neal Kreitzinger <[email-masked]>
Date: Thu, 10 Feb 2011 16:03:37 -0600

On 2/10/2011 3:24 PM, Francis Moreau wrote:
> On Thu, Feb 10, 2011 at 8:08 PM, Neal Kreitzinger
> <[email-masked]>  wrote:
>> You could write a script that does the clone and then adds the remotes.  We
>> have a "menu" written in bash scripts and it does the clones and adds the
>> default remotes automatically.  So instead of just doing "git clone", people
>> would run that script to do the clone and add the remotes.
>>
> Sure.
>
> But I'm wondering why cloning operation can't import the remote
> branches of the cloned repository.
>
> Actually I'm wondering the same thing for hooks. If a repository setup
> some hooks, can't these hooks be installed by default in the new
> repositories ?
>
you can do some hook setup automation using git templates.  see the 
--template option of git-clone manpage and 'template directory' section 
of git-init manpage.  There is some big reason why they don't let you 
inherit hooks from the origin repo of the clone repo.  I think its 
basically because you could have security risks or compromise git 
integrity/workflow with hook inheritance.  If you look in the newsgroup 
people have talked about this alot before.

As far as your request for automatic remotes, a flaw in your logic may 
be that you think the functionality you want would let you clone from an 
already-setup clone (1) which points to remote (a) then the new clone 
(2) would point to the remote (a) of clone(1).  Not so.  When you make a 
clone it does get an automatic remote to the repo it was cloned from.  
This is called 'origin' remote.  Therefore, clone(2) has an origin 
remote to clone (1).  Your idea on automatic remote setup is in direct 
conflict with the way git currently does automatic origin remote setup.  
You can't do both because that would turn in to a real mess pretty 
quickly.  Perhaps what you want is just "cp -r", ie. "cp -r clone-1 
clone-2".  then the clone-2 repo will have all the remotes and hooks of 
clone-1 and point to the same origin remote (a), but will live in a 
directory/working-tree called "clone-2".  "cp -r" will give you an exact 
duplicate thats totally functional, but occupying a different namespace.

hope this helps.

v/r,
neal

v/r,
neal