=head1 NAME

subrepo - Git Submodule Alternative

=head1 ABSTRACT



=head1 DESCRIPTION

This is just an example for generating completion for an existing command, L<https://github.com/ingydotnet/git-subrepo>

This git command "clones" an external git repo into a subdirectory of your repo. Later on, upstream changes can be pulled in, and local changes can be pushed back. Simple.

=head1 Benefits

This command is an improvement from C<git-submodule> and C<git-subtree>; two other git commands with similar goals, but various problems.


=head2 GLOBAL OPTIONS

    --help -h    Show command help (flag)


=head2 SUBCOMMANDS

=head3  branch

    subrepo  branch [options] [<subrepo>]

Create a branch with local subrepo commits since last pull.


Options:

    --all    All subrepos (flag)

Parameters:

    subrepo    Subrepo

=head3  clean

    subrepo  clean [options] [<subrepo>]

Remove artifacts created by C<fetch> and C<branch> commands.


Options:

    --all    All subrepos (flag)

Parameters:

    subrepo    Subrepo

=head3  clone

    subrepo  clone [options] <repository> [<subdir>]

Add a repository as a subrepo in a subdir of your repository.


Options:

    --branch -b    Upstream branch                                        
    --force -f     reclone (completely replace) an existing subdir. (flag)

Parameters:

    repository  *  
    subdir         

=head3  commit

    subrepo  commit <subrepo> [<subreporef>]

Add subrepo branch to current history as a single commit.


Parameters:

    subrepo     *  Subrepo    
    subreporef     Subrepo ref

=head3  fetch

    subrepo  fetch [options] [<subrepo>]

Fetch the remote/upstream content for a subrepo.


Options:

    --all    All subrepos (flag)

Parameters:

    subrepo    Subrepo

=head3  init

    subrepo  init [options] <subdir>

Turn an existing subdirectory into a subrepo.


Options:

    --remote -r    Specify remote repository
    --branch -b    Upstream branch          

Parameters:

    subdir  *  

=head3  pull

    subrepo  pull [options] [<subrepo>]

Update the subrepo subdir with the latest upstream changes.


Options:

    --all          All subrepos (flag)      
    --branch -b    Upstream branch          
    --remote -r    Specify remote repository
    --update -u    update                   

Parameters:

    subrepo    Subrepo

=head3  push

    subrepo  push [options] [<subrepo>]

Push a properly merged subrepo branch back upstream.


Options:

    --all          All subrepos (flag)      
    --branch -b    Upstream branch          
    --remote -r    Specify remote repository
    --update -u    update                   

Parameters:

    subrepo    Subrepo

=head3  status

    subrepo  status [options] [<subrepo>]

Get the status of a subrepo.


Options:

    --quiet -q    Just print names

Parameters:

    subrepo    Subrepo

=head3  version

    subrepo  version

display version information about git-subrepo



=head3  help

    subrepo  help

Same as C<git help subrepo>



=head3  _meta

    subrepo  _meta <subcommands>

Information and utilities for this app



=head3 _meta completion

    subrepo _meta completion <subcommands>

Shell completion functions



=head3 _meta completion generate

    subrepo _meta completion generate [options]

Generate self completion


Options:

    --name    name of the program (optional, override name in spec)
    --zsh     for zsh (flag)                                       
    --bash    for bash (flag)                                      


=head3 _meta pod

    subrepo _meta pod <subcommands>

Pod documentation



=head3 _meta pod generate

    subrepo _meta pod generate

Generate self pod





