NAME

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

VERSION

version 0.101750

OVERVIEW

This library implements the git-megaclone 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) 2010 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.