The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Git::Wrapper - wrap git(7) command-line interface

VERSION

  Version 0.006

SYNOPSIS

  my $git = Git::Wrapper->new('/var/foo');

  $git->commit(...)
  print $_->message for $git->log;

DESCRIPTION

Git::Wrapper provides an API for git(7) that uses Perl data structures for argument passing, instead of CLI-style --options as Git does.

METHODS

Except as documented, every git subcommand is available as a method on a Git::Wrapper object.

The first argument should be a hashref containing options and their values. Boolean options are either true (included) or false (excluded). The remaining arguments are passed as ordinary command arguments.

  $git->commit({ all => 1, message => "stuff" });

  $git->checkout("mybranch");

Output is available as an array of lines, each chomped.

  @sha1s_and_titles = $git->rev_list({ all => 1, pretty => 'oneline' });

If a git command exits nonzero, a Git::Wrapper::Exception object will be thrown. It has three useful methods:

  • error

    error message

  • output

    normal output, as a single string

  • status

    the exit status

The exception stringifies to the error message.

new

  my $git = Git::Wrapper->new($dir);

dir

  print $git->dir; # /var/foo

version

  my $version = $git->version; # 1.6.1.4.8.15.16.23.42

log

  my @logs = $git->log;

Instead of giving back an arrayref of lines, the log method returns a list of Git::Wrapper::Log objects. They have four methods:

  • id

  • author

  • date

  • message

SEE ALSO

VCI::VCS::Git is the git implementation for VCI, a generic interface to version-controle systems.

Git itself is at http://git.or.cz.

AUTHOR

Hans Dieter Pearcey, <hdp@cpan.org>

BUGS

Please report any bugs or feature requests to bug-git-wrapper@rt.cpan.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE

Copyright 2008 Hans Dieter Pearcey, All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.