VCI::Abstract::History - The history of a Project, File, Directory, etc.


VCI documentation  | view source Contained in the VCI distribution.

Index


NAME

Top

VCI::Abstract::History - The history of a Project, File, Directory, etc.

DESCRIPTION

Top

Essentially, this represents all of the commits to a particular file, project, directory, or anything that can be committed.

METHODS

Top

Accessors

All accessors are read-only.

commits

An arrayref of VCI::Abstract::Commit objects. This represents a series of commits to some particular item, such as a file, a directory, or an entire Project. It will always be in time order--earliest commits will be first, more recent commits will be last.

Note that depending on how the History was generated, and depending on the version-control system in use, what is listed in each commit may or may not represent the whole commit. That is, if this is the History of a File, each Commit might only contain information about that particular File, and not other Files or Directories that were committed at that time.

The most complete History possible will be generated by history in VCI::Abstract::Project.

project

What Project this History came from.

Constructors

In addition to new, we implement the following constructor(s):

union

Description

Given a list of History objects, returns an object that is a union of all of them. (This is useful for implementing contents_history in VCI::Abstract::FileContainer.)

Parameters

Takes the following named parameters, both of which are required:

histories

An arrayref of VCI::Abstract::History objects.

project

The VCI::Abstract::Project that the resulting History should be associated with.

Returns

A VCI::Abstract::History that has a union of all the commits in all of the supplied histories.

CLASS METHODS

Top

Constructors

Usually you won't construct an instance of this class directly, but instead, ask for this History of a Project or Committable.

new

Takes all Accessors of this class as named parameters. The following fields are required: commits and project.


VCI documentation  | view source Contained in the VCI distribution.