Subject: Re: git bug? + question

From: Andy Whitcroft <[email-masked]>
Date: Mon, 06 Nov 2006 09:53:58 +0000

Josef Weidendorfer wrote:
> On Saturday 04 November 2006 06:03, Shawn Pearce wrote:
>> After reading your reply you are probably correct.  I can see there
>> may be workflows that want every remote branch also created as a
>> local branch.
>>
>> I could certainly live with a command line option to clone, e.g.:
>>
>> 	git clone --only vmdvt,vmtip user@host:/path...
> 
> Still missing here: What branch should be checked out after
> cloning?

Does any need to be checked out?  Or perhap I should put it another way,
when we make a virgin repository we default to master checked out but
its not joined to the DAG.  Perhaps we can just init-db and fetch the
specified branches and we are done.  The user will then checkout things
as they need and if they do not need master they can lose it.

> 
> Perhaps it is better to extend git-checkout to allow to do the
> correct thing when the user specifies a read-only branch from
> refs/remotes. E.g. with refs/remotes/origin/vmdvt,
> 
>  	git checkout origin/vmdvt
> 
> should create a new local branch refs/heads/vmdvt which forks
> from remotes/origin/vmdvt (and abort with
> error if refs/heads/vmdvt already exists without being the local
> development branch for remotes/origin/vmdvt), add to .git/config
> 
> [branch "vmdvt"]
> 	remote = origin
> 	merge = remotes/origin/vmdvt
> 
> and switch to this new created branch.
> 
> Given this addition to git-checkout, the implicit default
> action after cloning with --use-separate-remote should be
> 
> 	git checkout origin/master
> 
> where "master" can be changed on the git-clone command line
> to another branch, e.g. "--checkout vmdvt".
> 
> IMHO, this addition to git-checkout would make it a lot
> easier to work with --use-separate-remote, as there,
> every branch other the master is read-only.
> 
> And if you have two remote repositories with a master branch
> each, and you want to develop locally on both, this could
> be accomplished with
> 
> 	git checkout -b othermaster remotes/otherrepo/master

-apw