NAME

rgit - Recursively execute a command on all the git repositories in a directory tree.

VERSION

Version 0.03

SYNOPSIS

rgit [GIT_OPTIONS] COMMAND [COMMAND_ARGS]

DESCRIPTION

This utility recursively searches in the current directory (or in the directory given by the GIT_DIR environment variable if it's set) for all git repositories, sort this list by the repository path, chdir into each of them, and executes the specified git command. Moreover, those formats are substuted in the arguments before running the command :

  • ^n with the current repository name.

  • ^g with the relative path to the current repository.

  • ^G with the absolute path to the current repository.

  • ^w with the relative path to the current repository's working directory.

  • ^W with the absolute path to the current repository's working directory.

  • ^b with a "bareified" relative path, i.e. ^g if this is a bare repository, and ^w.git otherwise.

  • ^B with an absolute version of the "bareified" path.

  • ^R with the absolute path to the current root directory.

  • ^^ with a bare ^.

There are actually a few commands that are only executed once in the current directory : version, help, daemon and init. For any of those, no format substitution is done.

You can specify which git executable to use with the GIT_EXEC_PATH environment variable.

EXAMPLES

Execute git gc on all the repositories below the current directory :

rgit gc

Tag all the repositories with their name :

rgit tag ^n

Add a remote to all repositories in "/foo/bar" to their bare counterpart in qux on host :

GIT_DIR="/foo/bar" rgit remote add host git://host/qux/^b

DEPENDENCIES

The core modules Carp, Cwd, Exporter, File::Find, File::Spec::Functions and List::Util.

Object::Tiny.

AUTHOR

Vincent Pit, <perl at profvince.com>, http://profvince.com.

You can contact me by mail or on irc.perl.org (vincent).

BUGS

Please report any bugs or feature requests to bug-rgit at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=rgit. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc rgit

Tests code coverage report is available at http://www.profvince.com/perl/cover/rgit.

COPYRIGHT & LICENSE

Copyright 2008 Vincent Pit, all rights reserved.

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