]> git.vpit.fr Git - perl/modules/rgit.git/commitdiff
Stop looking for repositories inside repositories
authorVincent Pit <vince@profvince.com>
Tue, 23 Feb 2010 14:36:17 +0000 (15:36 +0100)
committerVincent Pit <vince@profvince.com>
Tue, 23 Feb 2010 14:36:17 +0000 (15:36 +0100)
bin/rgit
lib/App/Rgit/Config/Default.pm

index 6e5c3d2ad891f887cb554d2857e926f0ce92ad3b..1ee11584f152f9812634198e6ae3dbec78b7fc60 100755 (executable)
--- a/bin/rgit
+++ b/bin/rgit
@@ -89,6 +89,8 @@ Version 0.06
 =head1 DESCRIPTION
 
 This utility recursively searches in a root directory (which may be the current working directory or - if it has been set - the directory given by the C<GIT_DIR> environment variable) for all git repositories, sort this list by the repository path, C<chdir> into each of them, and executes the specified git command.
+For efficiency reasons, repositories located inside another repository won't be searched for.
+
 Moreover, those formats are substituted in the arguments before running the command :
 
 =over 4
index 028e106a2302f351a47dd0e0393c1aa4fde4f70a..cd2160b9aa7c2f070899dab97d27bbef62cfa032 100644 (file)
@@ -45,9 +45,10 @@ sub repos {
   wanted => sub {
    return if m{(?:^|/)\.\.?$}
           or not (-d $_ and -r _);
-   my $r = App::Rgit::Repository->new(dir => $_);
-   $repos{$r->repo} = $r if $r
-                         and not exists $repos{$r->repo};
+   if (my $r = App::Rgit::Repository->new(dir => $_)) {
+    $File::Find::prune = 1;
+    $repos{$r->repo} = $r unless exists $repos{$r->repo};
+   }
   },
   follow   => 1,
   no_chdir => 1,