git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Andrew Ardill <andrew.ardill@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	git@vger.kernel.org, Michael Haggerty <mhagger@alum.mit.edu>
Subject: Re: Bug: "git checkout -b" should be allowed in empty repo
Date: Mon, 6 Feb 2012 00:06:37 -0500	[thread overview]
Message-ID: <20120206050637.GA4263@sigill.intra.peff.net> (raw)
In-Reply-To: <CAH5451ndjozo8-Cx3+Vc84TCjKJvCnSuOUsQS5cnqXsdc=8fMQ@mail.gmail.com>

On Mon, Feb 06, 2012 at 03:42:24PM +1100, Andrew Ardill wrote:

> On 6 February 2012 15:30, Jeff King <peff@peff.net> wrote:
> 
> > And perhaps in that case we should be discouraging them from calling it
> > something besides master (because while master is mostly convention,
> > there are a few magic spots in the code where it is treated specially,
> > and departing from the convention for no good reason should be
> > discouraged).
> 
> What exactly are the areas where 'master' is treated specially? I
> agree that people should be discouraged from needlessly abandoning
> convention, however I think users should have the ability to name
> their branches as they see fit.

Fairly minor stuff. Between the top of my head and a quick grep:

  1. Some transports (like git://) are incapable of communicating the
     destination of a remote's symbolic ref (they see only that HEAD
     points to some specific sha1). But things like "clone" want to know
     where the HEAD is pointing to set up the remotes/$origin/HEAD
     link. We can guess that if HEAD and some branch have the same sha1,
     that HEAD is pointing to that branch. But you might have two or
     more such branches pointing to the same spot. In this case, we
     prefer "master" over other branches.

     This code is in guess_remote_head.

  2. When merging, if the current branch is named "master", the default
     merge message says "Merge branch foo". Otherwise, it says "Merge
     branch foo into bar".

  3. It looks like the antique "branches" file format defaults to
     fetching "master" when no branch specifier is given. I doubt anyone
     is still using this file format these days.

I was actually surprised how infrequently the term "master" comes up in
a grep of the code. So while I wouldn't call my search exhaustive, I did
inspect every match in the C code.

> If I am forced to abandon code targeted at the 'master' naming
> convention in order to use my desired naming convention, we should fix
> that. Additionally, if I have to either manually set a branch name
> with plumbing commands, or delete existing branches that are generated
> automatically with no option not to generate them, we should improve
> the porcelain to cover these cracks.
> 
> In general, I think it plausible that in some use cases the term
> 'master' might be misleading or inappropriate and users should not be
> punished for that.

I kind of agree that we shouldn't be unnecessarily restrictive. On the
other hand, I am stretching to find the plausible reason that one would
want to throw away the normal convention. Code aside, it simply
introduces a slight communication barrier when talking with other git
users, and for that reason should be something you don't do lightly. I
don't recall seeing anybody complain seriously about it in the past six
years of git's existence.

-Peff

  reply	other threads:[~2012-02-06  5:06 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-29  6:09 Bug: "git checkout -b" should be allowed in empty repo Michael Haggerty
2012-01-29  6:56 ` Junio C Hamano
2012-01-29  7:50   ` Junio C Hamano
2012-01-30  6:38   ` Michael Haggerty
2012-01-30 18:48     ` Junio C Hamano
2012-01-30 20:10       ` Junio C Hamano
2012-01-30 21:50         ` Jeff King
2012-02-06  2:06           ` Junio C Hamano
2012-02-06  2:08             ` Junio C Hamano
2012-02-06  4:30             ` Jeff King
2012-02-06  4:42               ` Andrew Ardill
2012-02-06  5:06                 ` Jeff King [this message]
2012-02-06  8:51                   ` Michael Haggerty
2012-02-06  8:57                     ` Jeff King
2012-02-06 18:17                       ` Junio C Hamano
2012-02-06 20:14                         ` Jeff King
2012-02-07  8:04                         ` Michael Haggerty
2012-02-06 18:39                 ` demerphq
2012-02-06  5:15               ` Junio C Hamano
2012-02-06  5:18                 ` Jeff King
2012-02-06  5:30                   ` Junio C Hamano
2012-02-06  5:34                     ` Junio C Hamano
2012-02-06  5:45                     ` Jeff King
2012-02-06  8:59                     ` Michael Haggerty
2012-02-06 18:31                       ` Junio C Hamano
2012-01-30 21:48       ` Jeff King
2012-02-06  1:26         ` [PATCH] branch --edit-description: protect against mistyped branch name Junio C Hamano
2012-02-06  1:27           ` Junio C Hamano
2012-02-06  4:20           ` Jeff King
2012-01-31  8:57       ` Bug: "git checkout -b" should be allowed in empty repo Michael Haggerty
2012-01-31 10:01         ` Johannes Sixt
2012-01-31 10:11           ` demerphq
2012-01-31 10:09         ` Jakub Narebski
2012-01-31 16:32           ` Michael Haggerty

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=20120206050637.GA4263@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=andrew.ardill@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=mhagger@alum.mit.edu \
    /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).