The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Git::Megapull - clone or update all repositories found elsewhere

VERSION

version 0.101752

OVERVIEW

Achtung! Probably you can skip using Git::Megapull. Instead, go check out App::GitGot.

This library implements the git-megapull command, which will find a list of remote repositories and clone them. If they already exist, they will be updated from their origins, instead.

USAGE

  git-megapull [-bcs] [long options...]
    -b --bare       produce bare clones
    -c --clonely    only clone things that do not exist; skip others
    -s --source     the source class (or a short form of it)

The source may be given as a full Perl class name prepended with an equals sign, like =Git::Megapull::Source::Github or as a short form, dropping the standard prefix. The previous source, for example, could be given as just Github.

If no --source option is given, the megapull.source option in ~/.gitconfig will be consulted.

TODO

  * prevent updates that are not fast forwards
  * do not assume "master" is the correct branch to merge

WRITING SOURCES

Right now, the API for how sources work is pretty lame and likely to change. Basically, a source is a class that implements the repo_uris method, which returns a hashref like { $repo_name => $repo_uri, ... }. This is likely to be changed slightly to instantiate sources with parameters and to allow repos to have more attributes than a name and URI.

AUTHOR

Ricardo SIGNES <rjbs@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Ricardo SIGNES.

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