* Copyright 2010 Perforce Software. All rights reserved.
* This file is part of Perforce - the FAST SCM System.
* MultiMultiMerge - collect and connect a bunch of MultiMerges.
* MultiMultiMerge is the basis for an 'annotate -I' command, which
* collects the results of multiple 'annotate' commands and follows
* integration records to locate the original source of each line that
* has been merged into the starting file.
* A MultiMerge object represents the results of a normal 'annotate',
* and collects all of the revisions of a file, indicating a revision range
* for each line that indicates which revisions the line is present in.
* MultiMultiMerge stores an array of these representing a "family" of
* files related by integration history, and then is asked to connect
* lines between the files based on individual integration records.
* Each integration record fed into MultiMultiMerge results in a diff
* between the source and target revs. Lines that are identical between
* them which were introduced to the target at the target rev and introduced
* to the source at some point within the source rev range are considered to
* have been merged into the target as a result of that integration.
* Classes defined:
* MultiMultiMerge - the multiple MultiMerge merger
* (try saying that three times fast)
MultiMultiMerge( StrPtr *diffFlags = 0 );
void Put( const StrPtr& id, MultiMerge* );
MultiMerge* Get( int i );
const StrPtr& IdOf( MergeLine *line );
void Credit( const StrPtr& fromId, int sRev, int eRev,
const StrPtr& toId, int tRev, Error *e );
MultiMerge* Get( const StrPtr& id );