# File lib/rubygems/source_index.rb, line 239
    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
        use_incremental = missing_gems.size <= INCREMENTAL_THRESHHOLD
      rescue Gem::OperationNotSupportedError => ex
        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

      self
    end