Re: name-rev: anchor pattern without --exclude?
- Date: Thu, 6 Jul 2017 11:02:05 -0700
- From: Bryan Turner <bturner@xxxxxxxxxxxxx>
- Subject: Re: name-rev: anchor pattern without --exclude?
On Thu, Jul 6, 2017 at 10:23 AM, Kyle Meyer <kyle@xxxxxxxxxx> wrote:
> Junio C Hamano <gitster@xxxxxxxxx> writes:
>> Kyle Meyer <kyle@xxxxxxxxxx> writes:
>> What is the answer desired by your application when two or more
>> branches point at the same commit you are interested in? Pick one at
>> random? An error saying it cannot decide where to place the snapshot?
> Our use of name-rev is just to get a friendly name for a hash. If two
> branches point to the same commit, we're fine with whatever decision
> "git name-rev" makes; we just want to limit it to refs in the
> "refs/heads/" namespace.
If you don't need the ancestor traversals "git name-rev" provides,
"git for-each-ref --count 1 --format "%(refname:short)" --points-at
<hash> refs/heads/" might work. That only goes back to Git 2.7.0,
though; still quite a ways off your 1.9 target. ("git branch
--points-at" does the same thing, I should add, and only for branches,
but you can't directly limit its output like you can with
"for-each-ref".. Perhaps that doesn't matter for your use case.) If
you want names like "master~2", from your example, though,
"--points-at" won't do what you need.