Martin Langhoff <>:
> If someone creates a nonsensical tag or branch point, tagging files
> from different commits, how do you handle it?
>  - without commit ids, does it affect your guesses?

No.  Tagging is never used to deduce changesets. Look:

 * The heart of the merge operation; detect when two
 * commits are "the same"
static bool
rev_commit_match (rev_commit *a, rev_commit *b)
     * Versions of GNU CVS after 1.12 (2004) place a commitid in
     * each commit to track patch sets. Use it if present
    if (a->commitid && b->commitid)
        return a->commitid == b->commitid;
    if (a->commitid || b->commitid)
        return false;
    if (!commit_time_close (a->date, b->date))
        return false;
    if (a->log != b->log)
        return false;
    if (a->author != b->author)
        return false;
    return true;

>  - regardless of commit ids, do you synthesize an artificial commit?
> How do you define parenthood for that artificial commit?

Because tagging is never used to deduce changesets, the case does not arise.

I have added an item to my to-do: document what the tool does with
inconsistent tags.
                <a href="";>Eric S. Raymond</a>
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to