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. Bryan > > -- > Kyle