Re: [PATCH 1/2] Allow users to require source branch on git-checkout -b.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Dec 7, 2006, 21:23 UTC
- Message-ID
- <7v64cns8nf.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20061207195715.GG12143@spearce.org>
Shawn Pearce <spearce@spearce.org> writes:
Show 13 quoted lines
> Junio C Hamano <junkio@cox.net> wrote: >> "Shawn O. Pearce" <spearce@spearce.org> writes: >> > This introduces a new config option: checkout.requireSourceBranch, >> >> You could turn it around and make it a per-branch configuration, >> like: >> >> [branch "main"] >> allowbranchbydefault = true > > Are you suggesting that we change "git-checkout -b" to by default > require the source branch, but the user can restore the original > behavior by setting the above per-branch configuration option?
Under my suggestion, the new git-checkout -b (and git-branch) would:
(0) proceed if there is an explicit branch point specified on
the command like, just like now; (1) allow omission of branch-point if the current branch has
allowbranchbydefault configuration set as in above. A new
branch is created forking off of the current HEAD; (2) allow omission of branch-point if no branch has such
configuration; in other words, existing repositories that
do not have the allowbranchbydefault configuration anywhere
are not affected. A new branch is created forking off of
the current HEAD; (3) otherwise, it barfs if you do not give an explicit
branch-point.and a newly created repository that is newbie friendly has one such configuration automatically set for 'master' (if created with git-init) or whatever the primary branch is (if created with git-clone).
Note that (2) is rather important, although I think the current implementation of repo-config is cumbersome to use for this purpose and probably needs to be enhanced.