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.003

SYNOPSIS

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

  $git->commit(...)
  print 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

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.