diffmultimulti.h #1

  • //
  • guest/
  • perforce_software/
  • p4/
  • 2017-1/
  • diff/
  • diffmultimulti.h
  • View
  • Commits
  • Open Download .zip Download (2 KB)
/*
 * 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)
 *
 *
 */

struct MergeLine;
class MultiMerge;
class VarArray;

class MultiMultiMerge
{
    public:
			MultiMultiMerge( StrPtr *diffFlags = 0 );
			~MultiMultiMerge();

	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 );

	void		Dump();

    private:

	MultiMerge*	Get( const StrPtr& id );

	VarArray*	multiMerges;
	DiffFlags	flags;

};
# Change User Description Committed
#1 22288 mark_mears import 2017.1 code drop