[carton] 272/472: Skip modules that are referenced early in the tree to avoid duplicates.

Lucas Kanashiro kanashiro-guest at moszumanska.debian.org
Fri Jul 24 00:38:54 UTC 2015


This is an automated email from the git hooks/post-receive script.

kanashiro-guest pushed a commit to branch master
in repository carton.

commit d6345186a51f8d91eb4425c777b0596e61e9cb4b
Author: Tatsuhiko Miyagawa <miyagawa at bulknews.net>
Date:   Tue Jun 4 00:07:24 2013 +0900

    Skip modules that are referenced early in the tree to avoid duplicates.
---
 lib/Carton/CLI.pm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/Carton/CLI.pm b/lib/Carton/CLI.pm
index 10dfcd9..8831a43 100644
--- a/lib/Carton/CLI.pm
+++ b/lib/Carton/CLI.pm
@@ -265,14 +265,14 @@ sub cmd_tree {
     my $prereqs = $cpanfile->prereqs;
 
     my $dumper = $self->_make_dumper($lock);
-    $dumper->(undef, $prereqs, 0);
+    $dumper->(undef, $prereqs, 0, {});
 }
 
 sub _make_dumper {
     my($self, $lock) = @_;
 
     my $dumper; $dumper = sub {
-        my($name, $prereqs, $level) = @_;
+        my($name, $prereqs, $level, $seen) = @_;
 
         my $req = CPAN::Meta::Requirements->new;
         $req->add_requirements($prereqs->requirements_for($_, 'requires'))
@@ -285,7 +285,8 @@ sub _make_dumper {
         my $requirements = $req->as_string_hash;
         while (my($module, $version) = each %$requirements) {
             if (my $dependency = $lock->find($module)) {
-                $dumper->($dependency->dist, $dependency->prereqs, $level + 1);
+                next if $seen->{$dependency->dist}++;
+                $dumper->($dependency->dist, $dependency->prereqs, $level + 1, $seen);
             } else {
                 # TODO: probably core, what if otherwise?
             }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/carton.git



More information about the Pkg-perl-cvs-commits mailing list