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