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


version 0.101752


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.


  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.


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


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.


Ricardo SIGNES <>


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.