update (Gem::SourceIndex)

    # File lib/rubygems/source_index.rb, line 269
        def update(source_uri)
          use_incremental = false

          begin
            gem_names = fetch_quick_index source_uri
            remove_extra gem_names
            missing_gems = find_missing gem_names

            return false if missing_gems.size.zero?

            say "missing #{missing_gems.size} gems" if
              missing_gems.size > 0 and Gem.configuration.really_verbose

            use_incremental = missing_gems.size <= Gem.configuration.bulk_threshold
          rescue Gem::OperationNotSupportedError => ex
            alert_error "Falling back to bulk fetch: #{ex.message}" if
              Gem.configuration.really_verbose
            use_incremental = false
          end

          if use_incremental then
            update_with_missing(source_uri, missing_gems)
          else
            new_index = fetch_bulk_index(source_uri)
            @gems.replace(new_index.gems)
          end

          true
        end