On Wed, Jul 25, 2012 at 02:52:54PM -0700, Junio C Hamano wrote: > Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> writes: > > > Has anyone else noticed false positives coming from the > > orphan check? > > Thanks. This should fix it. I've just been hunting the same bug and came up with the same answer. Here's a commit message. Feel free to apply or steal text for your commit. -- >8 -- Subject: [PATCH] checkout: don't confuse ref and object flags When we are leaving a detached HEAD, we do a revision traversal to check whether we are orphaning any commits, marking the commit we're leaving as the start of the traversal, and all existing refs as uninteresting. Prior to commit 468224e5, we did so by calling for_each_ref, and feeding each resulting refname to setup_revisions. Commit 468224e5 refactored this to simply mark the pending objects, saving an extra lookup. However, it confused the "flags" parameter to the each_ref_fn clalback, which is about the flags we found while looking up the ref (e.g., REF_ISSYMREF) with the object flag (UNINTERESTING), leading to unpredictable results, as we were setting random flag bits on objects in the traversal. --- builtin/checkout.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/checkout.c b/builtin/checkout.c index a76899d..f855489 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -592,7 +592,7 @@ static int add_pending_uninteresting_ref(const char *refname, const unsigned char *sha1, int flags, void *cb_data) { - add_pending_sha1(cb_data, refname, sha1, flags | UNINTERESTING); + add_pending_sha1(cb_data, refname, sha1, UNINTERESTING); return 0; } -- 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