]> git.vpit.fr Git - perl/modules/rgit.git/blobdiff - lib/App/Rgit/Config/Default.pm
Stop looking for repositories inside repositories
[perl/modules/rgit.git] / lib / App / Rgit / Config / Default.pm
index 543891c19ce2b5c522001d7cd8421fd08fa27e0f..cd2160b9aa7c2f070899dab97d27bbef62cfa032 100644 (file)
@@ -43,12 +43,15 @@ sub repos {
  my %repos;
  find {
   wanted => sub {
-   return unless -d $_;
-   my $r = App::Rgit::Repository->new(dir => $File::Find::name);
-   $repos{$r->repo} = $r if $r 
-                         and not exists $repos{$r->repo};
+   return if m{(?:^|/)\.\.?$}
+          or not (-d $_ and -r _);
+   if (my $r = App::Rgit::Repository->new(dir => $_)) {
+    $File::Find::prune = 1;
+    $repos{$r->repo} = $r unless exists $repos{$r->repo};
+   }
   },
-  follow => 1
+  follow   => 1,
+  no_chdir => 1,
  }, $self->root;
  $self->{repos} = [ sort { $a->repo cmp $b->repo } values %repos ];
 }