The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::KGB::Change - a single file change

SYNOPSIS

    my $c = App::KGB::Change->new(
        { action => "M", prop_change => 1, path => "/there" } );

    print $c;

    my $c = App::KGB::Change->new("(M+)/there");

DESCRIPTION

App::KGB::Change encapsulates a single path change from a given change set (or commit).

App::KGB::Change overloads the "" operator in order to provide a default string representation of changes.

FIELDS

action (mandatory)

The action performed on the item. Possible values are:

M

The path was modified.

A

The path was added.

D

The path was deleted.

R

The path was replaced.

path (mandatory)

The path that was changed.

prop_change

Boolean. Indicated that some properties of the path, not the content were changed.

CONSTRUCTOR

new ( { initial values } )

More-or-less standard constructor.

It can take a hashref with keys all the field names (See ).

Or, it can take a single string, which is de-composed into components.

See for examples.

METHODS

as_string()

Return a string representation of the change. Used by the "" overload. The resulting string is suitable for feeding the constructor if needed.

CLASS METHODS

detect_common_dir(changes)

Given an arrayref of changes (instances of APP::KGB::Change), detects the longest path that is common to all of them. All the changes' paths are trimmed from the common part.

Example:

 foo/b
 foo/x
 foo/bar/a

would return 'foo' and the paths would be trimmed to

 b
 x
 bar/a