Git::Raw::Submodule(3pm)

NAME
Git::Raw::Submodule - Git submodule class

VERSION
version 0.90

DESCRIPTION
WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).

METHODS

  foreach( $repo, \&callback )
Iterate over all tracked submodules of a repository. Calls "\&callback" for each submodule. The callback receives a single argument, the name of the submodule. A non-zero return value will terminate the loop.

  lookup( $repo, $name )
Lookup submodule information by name or path. Returns a Git::Raw::Submodule object.

  init( $overwrite )
Just like "git submodule init", this copies information about the submodule into ".git/config".

  open( )
Open the repository for a submodule. Returns a Git::Raw::Repository object.

  update( $init, [\%update_opts] )
Update a submodule. This will clone a missing submodule and checkout the subrepository to the commit specified in the index of the containing repository. If the submodule repository doesn't contain the target commit, then the submodule is fetched using the fetch options supplied in "\%update_opts". If the submodule is not initialized, setting the $init flag to true will initialize the submodule before updating. Otherwise, this method will thrown an exception if attempting to update an uninitialzed repository.

Valid fields for %update_opts are:

•   "checkout_opts"

    See "Git::Raw::Repository->checkout()".

•   "fetch_opts"

    See "Git::Raw::Remote->fetch()".

•   "allow_fetch"

    Allow fetching from the submodule's default remote if the target commit isn't found. Enabled by default.

  name( )
Get the name of submodule.

  path( )
Get the path to the submodule.

  url( )
Get the URL of the submodule.

  add_to_index( )
Add current submodule HEAD commit to index of superproject.

  sync( )
Copy submodule remote info into submodule repo.

  reload( )
Reread submodule info from config, index, and HEAD.

AUTHOR
Jacques Germishuys <jacquesg@cpan.org>

LICENSE AND COPYRIGHT
Copyright 2019 Jacques Germishuys.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.