Junio C Hamano <junkio@xxxxxxx> writes: > "Shawn O. Pearce" <spearce@xxxxxxxxxxx> writes: > >> The common case is probably going to be where the argument to >> `git checkout` is a fast-foward of the detached HEAD. And that's >> pretty cheap to check. So we perform that check, and if we fail >> that then we search through every ref to determine if the detached >> HEAD is fully contained in any of those. Currently that would be >> pretty slow to do with the current tools, but a small modification >> of say git-merge-base (or git-describe) might make it cheap enough >> to run during this slightly less common case. > > The needed change to merge-base is quite minimum. Let me come > up with a patch... [PATCH 1/6] Allow in_merge_bases() to take more than one reference commits. [PATCH 2/6] merge_base(): move traversal into a separate function. [PATCH 3/6] git-merge-base: --check-ancestry option [PATCH 4/6] in_merge_bases(): optimization [PATCH 5/6] Make merge-base a built-in. [PATCH 6/6] Teach "git-merge-base --check-ancestry" about refs. - 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