On Wed, Aug 29, 2012 at 02:17:24PM -0700, Junio C Hamano wrote: > Instead of naming a rev after a tip that is topologically closest, > use the tip that is the oldest one among those which contain the > rev. When you wrote "oldest" here, I thought that meant you would do a comparison on the taggerdate. But reading the implementation, you really mean "topologically oldest". I wonder, though, if the former would be sufficient for most people. Or even just sorting based on the tag name. For example, taking Greg's original example: $ commit=0136db586c028f71e7cc21cc183064ff0d5919 $ oldest_tag=`git tag --contains $commit | sort -V | head -1` $ git name-rev --refs="refs/tags/$oldest_tag" $commit 0136db586c028f71e7cc21cc183064ff0d5919 tags/v3.5~335^2~81^2~76 Of course "sort -V" is not portable, and it actually places -rc tags after release tags (note that we found v3.5 here, not v3.5-rc1). But that is an implementation detail that could be solved (either by a better comparison function, or by just using taggerdate instead). In some ways it is not as elegant (clock skew in your tag dates would be relevant), but it is simple and performs well without needing to manage a cache. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html