From: Jeff King <peff@github.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johan Herland <johan@herland.net>,
git@vger.kernel.org, Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
Sverre Rabbelier <srabbelier@gmail.com>,
Ingo Molnar <mingo@elte.hu>,
Stephen Rothwell <sfr@canb.auug.org.au>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: Q: how can i find the upstream merge point of a commit?
Date: Wed, 15 Jun 2011 20:48:03 -0400 [thread overview]
Message-ID: <20110616004803.GD20355@sigill.intra.peff.net> (raw)
In-Reply-To: <7vips6ircc.fsf@alter.siamese.dyndns.org>
On Wed, Jun 15, 2011 at 04:53:55PM -0700, Junio C Hamano wrote:
> Jeff King <peff@github.com> writes:
>
> > Given 1/2/3, you would look for tags in:
> >
> > refs/remotes/1/tags/2/3
> > refs/remotes/1/2/tags/3
> >
> > and then similarly heads in:
> >
> > refs/remotes/1/heads/2/3
> > refs/remotes/1/2/heads/3
>
> > And then complain of ambiguity if they both match (which will almost
> > _never_ happen, unless you have a totally insane repo setup. So this is
> > really just about having well-defined rules just in case, and probably
> > won't affect most people in practice. In most cases, it will just DWYM).
> >
> > The "HEAD" thing remains simple. You check for:
> >
> > refs/remotes/1/2/3/HEAD
> >
> > since HEAD is going to be at the top-level anyway.
>
> Gaah, why is this even a good thing?
I do think it's slightly insane, but if we are going to have "foo/bar"
map into "refs/remotes/foo/heads/bar", then we have to start giving some
significance to the slash; a straight append won't work anymore. It may
be enough to say "the first slash always ends the part between "remotes"
and "heads" (i.e., remotes cannot have slashes).
> Yes, you demonstrated that it is _possible_ to define disambiguation
> rules, but do we currently allow (or horrors encourage) hierarchical
> remote nicknames, and do people rely on being able to do so? What
> workflows benefit from such a confusing layout?
>
> I am not fundamentally opposed to it, but just trying to tell between "we
> do so because we can" and "because we need to for such and such reasons".
My reasoning is that we don't disallow remote names with slashes, nor do
we disallow people putting arbitrarily nested refs into refs/remotes. So
in the name of compatibility, we should assume people are doing it and
not break them.
If we want to declare this illegal, I'm not too opposed. The only use
case I could think of is somebody who works with two different sets of
remotes, like "upstream" people and internal people. E.g., if I'm at
company "foo" working on linux internally, I might have a few remotes:
origin: linus
foo/alice: coworker alice's tree
foo/bob: coworker bob's tree
And then I could ask questions that involve globbing on the refs like
"which commits are in my company but not published upstream?"
Something like:
git log \
`git for-each-ref --format='%(objectname)' refs/remotes/foo/*` \
--not linus/master
I've never actually seen anything like this, though. That was just the
only useful example I could come up with.
-Peff
next prev parent reply other threads:[~2011-06-16 0:48 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-08 9:36 Q: how can i find the upstream merge point of a commit? Ingo Molnar
2011-06-08 10:32 ` Johannes Sixt
2011-06-08 10:34 ` Stephen Rothwell
2011-06-08 10:40 ` Peter Zijlstra
2011-06-08 11:29 ` Stephen Rothwell
2011-06-08 11:51 ` Peter Zijlstra
2011-06-08 12:52 ` Ingo Molnar
2011-06-08 13:49 ` Sverre Rabbelier
2011-06-08 14:27 ` Ingo Molnar
2011-06-08 15:23 ` Nguyen Thai Ngoc Duy
2011-06-14 9:56 ` Johan Herland
2011-06-14 17:12 ` Jeff King
2011-06-14 23:45 ` Johan Herland
2011-06-15 23:00 ` Jeff King
2011-06-15 23:53 ` Junio C Hamano
2011-06-16 0:48 ` Jeff King [this message]
2011-06-16 11:33 ` Jakub Narebski
2011-06-08 15:01 ` Junio C Hamano
2011-06-08 15:18 ` Ingo Molnar
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=20110616004803.GD20355@sigill.intra.peff.net \
--to=peff@github.com \
--cc=a.p.zijlstra@chello.nl \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johan@herland.net \
--cc=mingo@elte.hu \
--cc=pclouds@gmail.com \
--cc=sfr@canb.auug.org.au \
--cc=srabbelier@gmail.com \
--cc=torvalds@linux-foundation.org \
/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).