-
Committer:
John Arbash Meinel
-
Date:
2008-07-11 21:28:36 UTC
-
mto:
This revision was merged to the branch mainline in
revision
3543.
-
Revision ID:
john@arbash-meinel.com-20080711212836-1ehghrnzgaioqwou
Handle more edge cases.
Specifically, we don't have to switch on the whole-ancestry logic until we have
3 or more LCAs, we were doing it when there was 2.
However, when we do switch on the whole ancestry logic, it is possible to
get extra 'tails' which have ancestors that are in the ancestry of the
unique lca, but they themselves do not terminate on the unique lca.
The current code is a bit of a compromise, as we probably should chase down
more nodes to include. If we include more than 1 lca, then we run into the
same problem, where common lines have to have one side 'win' and the other 'lose'.
A different possibility would be to create an artificial ancestor node,
which uses the common lines from the different LCAs, so that it is assumed they
all come from the same source. This would end up ignoring cases where changes
were reverted and then reintroduced.