Provided by: libgit-repository-perl_1.317-1_all bug

NAME

       Test::Git - Helper functions for test scripts using Git

SYNOPSIS

           use Test::More;
           use Test::Git;

           # check there is a git binary available, or skip all
           has_git();

           # check there is a minimum version of git available, or skip all
           has_git( '1.6.5' );

           # check the git we want to test has a minimum version, or skip all
           has_git( '1.6.5', { git => '/path/to/alternative/git' } );

           # normal plan
           plan tests => 2;

           # create a new, empty repository in a temporary location
           # and return a Git::Repository object
           my $r = test_repository();

           # clone an existing repository in a temporary location
           # and return a Git::Repository object
           my $c = test_repository( clone => [ $url ] );

           # run some tests on the repository
           ...

DESCRIPTION

       Test::Git provides a number of helpful functions when running test scripts that require
       the creation and management of a Git repository.

EXPORTED FUNCTIONS

   has_git
           has_git( $version, \%options );

       Checks if there is a git binary available, or skips all tests.

       If the optional $version argument is provided, also checks if the available git binary has
       a version greater or equal to $version.

       This function also accepts an option hash of the same kind as those accepted by
       Git::Repository and Git::Repository::Command.

       This function must be called before "plan()", as it performs a skip_all if requirements
       are not met.

       Note that the "test_requires_git" function provided by the Test::Requires::Git module is
       much more flexible.

   test_repository
           test_repository( %options );

       Creates a new empty git repository in a temporary location, and returns a Git::Repository
       object pointing to it.

       This function takes options as a hash. Each key will influence a different part of the
       creation process.

       The keys are:

       temp
           Array reference containing parameters to File::Temp "tempdir" function.

           Default: "<[ CLEANUP =" 1 ]>>

       init
           Array reference containing parameters to "git init".  Must not contain the target
           directory parameter, which is provided by "test_repository()" (via File::Temp).

           Default: "[]"

           The "init" option is only supported with Git versions higher or equal to 1.6.2.rc0.

       clone
           Array reference containing parameters to "git clone".  Must not contain the target
           directory parameter, which is provided by "test_repository()" (via File::Temp).

           Note that "clone" and "init" are mutually exclusive and that "test_repository()" will
           croak if both are provided.  This option has no default value, since at least a Git
           URL must be provided to the "clone" option.

           The "clone" option is only supported with Git versions higher or equal to 1.6.2.rc0.

       git Hash reference containing options for Git::Repository.

           Default: "{}"

       This call is the equivalent of the default call with no options:

           test_repository(
               temp => [ CLEANUP => 1 ],    # File::Temp::tempdir options
               init => [],                  # git init options
               git  => {},                  # Git::Repository options
           );

       To create a bare repository:

           test_repository( init => [ '--bare' ] );

       To leave the repository in its location after the end of the test:

           test_repository( temp => [ CLEANUP => 0 ] );

       Note that since "test_repository()" uses "git init" to create the test repository, it
       requires at least Git version "1.5.0.rc1".

ACKNOWLEDGEMENTS

       The "clone" option and capability of "test_repository()" owes a lot to Nathan Nutter
       (NNUTTER), who wanted to be able to clone into a test repository.

SEE ALSO

       Test::Requires::Git.

COPYRIGHT

       Copyright 2010-2016 Philippe Bruhat (BooK), all rights reserved.

LICENSE

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