# File lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb, line 57
    def initialize_copy(other)
      super
      @vertices = other.vertices.reduce({}) do |vertices, (name, vertex)|
        vertices.tap do |hash|
          hash[name] = vertex.dup.tap { |v| v.graph = self }
        end
      end
      @root_vertices = Hash[@vertices.select { |n, _v| other.root_vertices[n] }]
      @edges = other.edges.map do |edge|
        Edge.new(
          vertex_named(edge.origin.name),
          vertex_named(edge.destination.name),
          edge.requirements.dup
        )
      end
    end