=head1 NAME

Group::Git::Examples - Some example usage of group-git

=head1 VERSION

This documentation refers to Group::Git::Examples version 0.7.6


=head2 Pulling all managed repositories

What I imagine will be the most common use case, pulling all repositories:

    $ group-git pull

Supports all (or most?) of C<git>'s L<pull|Group::Git::Cmd::Pull> options eg

    $ group-git pull --ff -r

As many repositories may not change you can use the C<--quiet> parameter to
suppress the output from repositories with out any changes:

    $ group-git pull --quiet
    # or short hand
    $ group-git pull -q

=head2 Repository Tags

Repository tags can be specified in 3 different:

=over 4

=item *

Automatically : The L<Group::Git::Github> and L<Group::Git::Stash> plugins both
generate tags and by modules under Group::Git::Taggers::*.

=over 4

=item *

L<Group::Git::Github> adds a tag for all repositories that are forks of other repositories

=item *

L<Group::Git::Stash> adds tags for repositories based on their project

=item *

L<Group::Git::Taggers::Local> tags repositories that are only local to the computer

=item *

L<Group::Git::Taggers::Remote> tags repositories that are clones of remote git


=item *

In the C<group-git.yml> you can also specify tags

    # other options
            - repo1
            - repo2
            - repo1
            - repo3

=item *

The final way is in the repositories them selves add a file in the root in the
format .{tag}.tag


Tags can be used to include only repositories that match:

    $ group-git --tag mytag pull
    # or short hand
    $ group-git -t mytag pull

Note: that the tag must be specified before the command to execute

=head2 Running scripts

With the L<sh|Group::Git::Cmd::Sh> command you can run scripts in each
repository if you need to perform as systematic task. You can also use this
command to just enter a bash prompt for each repository:

    $ group-git sh bash

Run tests in each repository?

    # Perl module build?
    $ group-git sh './Build test'
    # Perl distzilla
    $ group-git sh 'dzil test'
    # Maven test?
    $ group-git sh 'mvn clean test'
    # Node with gulp?
    $ group-git sh 'gulp test'
    # Have a mixed environment?
    $ group-git sh 'if [ -e 'Build' ]; then ./Build test; else gulp test; fi'


=head1 AUTHOR

Ivan Wills - (ivan.wills@gmail.com)


Copyright (c) 2015 Ivan Wills (14 Mullion Close, Hornsby Heights, NSW Australia 2077).
All rights reserved.

This module is free software; you can redistribute it and/or modify it under
the same terms as Perl itself. See L<perlartistic>.  This program is
distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A